丈量你的代碼,從cloc開始


如果我想統計我當前的項目有多少代碼量?行數最高的代碼文件有哪些?並且排除某些目錄,怎么統計?要統計出注釋多少行,和代碼多少行?使用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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM