如果我想統計我當前的專案有多少程式碼量?行數最高的程式碼檔案有哪些?並且排除某些目錄,怎麼統計?要統計出註釋多少行,和程式碼多少行?使用cloc就行。
cloc是一款使用Perl語言開發的開原始碼統計工具,支援多平臺使用、多語言識別。
mac上安裝cloc還是用brew最為簡單, brew install cloc
即可。
cloc自身專案也是開源的,github地址為:https://github.com/AlDanial/cloc 裡面有使用說明。當然你也可以檢視help命令。
有興趣的同學可以看下這個開源專案,程式碼就完全一個檔案,1萬7千多行的一個perl檔案!!!真是非常的極客風範。
我這裡列一下幾個可能用到的使用方式。
顯示cloc支援的語言
cloc --show-lang
排除某個目錄分析專案
cloc ./ --exclude-dir=node_modules
統計程式碼行數(排除註釋)排名前10的go檔案
cloc --quiet -by-file ./ --exclude-dir=node_modules --include-lang=Go|grep ".go"|sort -rn -k 4 | head -n 10
這個命令稍微解釋下,首先--quiet是把輸出結果精簡化了,一些總計的結果給過濾了。然後使用-by-file 代表統計的時候按照檔案統計,而不是按照預設的語言統計, --e xclude-dir 表示省略node_modules資料夾。 --include-lang 這裡直接標記將Golang的檔案統計出來。
上面這些cloc的命令就把./下有哪些go檔案,每個檔案的空格多少行,註釋多少行,真正程式碼多少行都列出來了。然後使用grep ".go" 把一些噪音輸出過濾掉,只留下“檔名\t空格行數\t註釋行數\t程式碼行數”,後面的sort -rn -k 4 按照第四列(程式碼行數)倒序排列,並且 head -n 10 顯示前10個檔案。
cloc的使用估計還有很多用法,功能也非常強大,只有用時再琢磨了。
一個檔案實現了這麼多功能。為這個專案點個star~
參考:
https://juejin.cn/post/6844904015449309191