Ohcount:原始碼行計數器和分析器
Ohcount 是一個簡單的命令列工具,可用於分析原始碼並列印程式碼的總行數。它不僅僅是程式碼行計數器,還可以在含有大量程式碼的目錄中檢測流行的開源許可證,例如 GPL。此外,Ohcount 還可以檢測針對特定程式設計 API(例如 KDE 或 Win32)的程式碼。在編寫本指南時,Ohcount 目前支援 70 多種流行的程式語言。它用 C 語言編寫,最初由 Ohloh 開發,用於在 www.openhub.net 中生成報告。
在這篇簡短的教程中,我們將介紹如何安裝和使用 Ohcount 來分析 Debian、Ubuntu 及其變體(如 Linux Mint)中的原始碼檔案。
Ohcount – 程式碼行計數器
安裝
Ohcount 存在於 Debian 和 Ubuntu 及其派生版的預設倉庫中,因此你可以使用 APT 軟體包管理器來安裝它,如下所示。
$ sudo apt-get install ohcount
用法
Ohcount 的使用非常簡單。
你所要做的就是進入你想要分析程式碼的目錄並執行程式。
舉例來說,我將分析 coursera-dl 程式的原始碼。
$ cd coursera-dl-master/
$ ohcount
以下是 Coursera-dl 的行數摘要:
如你所見,Coursera-dl 的原始碼總共包含 141 個檔案。第一列說明原始碼含有的程式語言的名稱。第二列顯示每種程式語言的檔案數量。第三列顯示每種程式語言的總行數。第四行和第五行顯示程式碼中由多少行註釋及其百分比。第六列顯示空行的數量。最後一列和第七列顯示每種語言的全部程式碼行數以及 coursera-dl 的總行數。
或者,直接使用下面的完整路徑。
$ ohcount coursera-dl-master/
路徑可以是任何數量的單個檔案或目錄。目錄將被遞迴探測。如果沒有給出路徑,則使用當前目錄。
如果你不想每次都輸入完整目錄路徑,只需 cd 進入它,然後使用 ohcount 來分析該目錄中的程式碼。
要計算每個檔案的程式碼行數,請使用 -i
標誌。
$ ohcount -i
示例輸出:
當您使用 -a
標誌時,ohcount 還可以顯示帶標註的原始碼。
$ ohcount -a
如你所見,顯示了目錄中所有原始碼的內容。每行都以製表符分隔的語言名稱和語義分類(程式碼、註釋或空白)為字首。
有時候,你只是想知道原始碼中使用的許可證。為此,請使用 -l
標誌。
$ ohcount -l
lgpl3, coursera_dl.py
gpl coursera_dl.py
另一個可用選項是 -re
,用於將原始實體資訊列印到螢幕(主要用於除錯)。
$ ohcount -re
要遞迴地查詢給定路徑內的所有原始碼檔案,請使用 -d
標誌。
$ ohcount -d
上述命令將顯示當前工作目錄中的所有原始碼檔案,每個檔名將以製表符分隔的語言名稱為字首。
要了解更多詳細資訊和支援的選項,請執行:
$ ohcount --help
對於想要分析自己或其他開發人員開發的程式碼,並檢查程式碼的行數,用於編寫這些程式碼的語言以及程式碼的許可證詳細資訊等,ohcount 非常有用。
就是這些了。希望對你有用。會有更好的東西。敬請關注!
乾杯!
via: https://www.ostechnix.com/ohcount-the-source-code-line-counter-and-analyzer/
相關文章
- 實現指令碼直譯器 - 詞法分析器指令碼詞法分析
- Elasticsearch Analysis 分析器Elasticsearch
- 詞法分析器詞法分析
- PostgreSQL 原始碼解讀(167)- 查詢#87(基礎知識-語法分析器Bison)SQL原始碼語法分析
- 深入講解Flutter應用模板原始碼:計數器示例Flutter原始碼
- Lex詞法分析器詞法分析
- 統計程式碼行數
- 元件 popup 設計和原始碼剖析元件原始碼
- Monkey 01 lexer 詞法分析器詞法分析
- Netty原始碼分析之ByteBuf引用計數Netty原始碼
- 文字和原始碼編輯器EditRocket for Mac原始碼Mac
- HashMap原始碼解析和設計解讀HashMap原始碼
- Pycharm——安裝mypy(靜態分析器)PyCharm
- memray: Python的記憶體分析器Python記憶體
- 直播電商原始碼,商品出售倒數計時的定時器效果原始碼定時器
- 熔斷器 Hystrix 原始碼解析 —— 執行命令方式原始碼
- 統計程式碼行數簡易程式
- 巢狀滾動設計和原始碼分析巢狀原始碼
- 【編譯原理】手工打造詞法分析器編譯原理詞法分析
- 【編譯原理】手工打造語法分析器編譯原理語法分析
- 原始碼分析:CountDownLatch 之倒數計時門栓原始碼CountDownLatch
- Guava Cache:核心引數深度剖析和原始碼分析Guava原始碼
- php直播原始碼,PHP也能非同步和並行執行PHP原始碼非同步並行
- 原始碼中的設計模式--裝飾器模式原始碼設計模式
- Django模型驗證器詳解和原始碼分析Django模型原始碼
- Redis原始碼剖析——客戶端和伺服器Redis原始碼客戶端伺服器
- RxJava原始碼解析(二)—執行緒排程器SchedulerRxJava原始碼執行緒
- 執行時資料區——程式計數器
- 原始碼、反碼和補碼原始碼
- linux統計檔案個數及程式碼總行數Linux
- 聊一聊 EventBus 原始碼和設計之禪原始碼
- 依存句法分析器的簡單實現
- 流式細胞分析器:FlowJo For Mac啟用版Mac
- 用Python實現 詞法分析器(Lexical Analyzer)Python詞法分析
- DRF之請求執行流程和APIView原始碼分析APIView原始碼
- 探討阻塞佇列和執行緒池原始碼佇列執行緒原始碼
- Android如何在kotlin中進行函數語言程式設計?kotlin版本原始碼解析AndroidKotlin函數程式設計原始碼
- [原始碼解析] NVIDIA HugeCTR,GPU版本引數伺服器---(3)原始碼GPU伺服器