在工作中有时会有需要统计代码的行数,一般会用 wc 给出一个大致的结果。只不过在源代码文件分布比较分散,且存在多种不同类型语言的源代码时,wc 就不是特别适合了。
在公司内部也见过一些同事实现类似功能的脚本,但我想这应该是一个通用的需求,于是就找到了这个工具 - CLOC。其实就是一个 perl 脚本,很好用,统计报告也很清晰。在这里推荐一下。下面是一个统计 leveldb 源代码行数的例子。
$ cloc .
128 text files.
123 unique files.
353 files ignored.
http://cloc.sourceforge.net v 1.55 T=0.5 s (238.0 files/s, 46718.0 lines/s)
-------------------------------------------------------------------------------
Language files blank comment code
-------------------------------------------------------------------------------
C++ 60 2012 1258 13124
C/C++ Header 52 968 1458 2690
HTML 3 84 0 1094
C 1 33 7 255
make 1 43 17 153
CSS 1 10 1 78
Bourne Shell 1 9 19 46
-------------------------------------------------------------------------------
SUM: 119 3159 2760 17440
-------------------------------------------------------------------------------
试了一下,挺好,可惜有bug,cloc官方也知道有bug,就是没修复