丈量你的程式碼,從cloc開始

軒脈刃發表於2021-12-19

如果我想統計我當前的專案有多少程式碼量?行數最高的程式碼檔案有哪些?並且排除某些目錄,怎麼統計?要統計出註釋多少行,和程式碼多少行?使用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

image

統計程式碼行數(排除註釋)排名前10的go檔案

cloc --quiet -by-file ./ --exclude-dir=node_modules --include-lang=Go|grep ".go"|sort -rn -k 4 | head -n 10

image

這個命令稍微解釋下,首先--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

https://blog.csdn.net/m0_37194132/article/details/85043351

https://github.com/AlDanial/cloc

相關文章