Loading...
墨滴

叶剑峰

2021/12/19  阅读:58  主题:默认主题

丈量你的代码,从cloc开始

丈量你的代码,从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

image-20211218161857875
image-20211218161857875

排除某个目录分析项目

cloc ./ --exclude-dir=node_modules

image-20211218155626115
image-20211218155626115

统计代码行数(排除注释)排名前10的go文件

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

![image-20211218161444449](/Users/yejianfeng/Library/Application Support/typora-user-images/image-20211218161444449.png)

这个命令稍微解释下,首先--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

叶剑峰

2021/12/19  阅读:58  主题:默认主题

作者介绍

叶剑峰