在工作中有时会有需要统计代码的行数,一般会用 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,就是没修复