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

统计代码行数(排除注释)排名前10的go文件
cloc --quiet -by-file ./ --exclude-dir=node_modules --include-lang=Go|grep ".go"|sort -rn -k 4 | head -n 10

这个命令稍微解释下,首先--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
丈量你的代码,从cloc开始的更多相关文章
- 使用 cloc 统计代码行数
可能大家都知道用 `wc -l` 命令进行代码行数统计,但是它会将代码中的注释.空行所占用的文本行都统计在内.如果想查看一个 tar 包或一个项目目录中“实际”的代码行数并且不愿意自己去写一个脚本来做 ...
- python 高级部分
伴随视频可以观看 因为Python的线程虽然是真正的线程,但解释器执行代码时,有一个GIL锁:Global Interpreter Lock,任何Python线程执行前,必须先获得GIL锁,然后,每执 ...
- python 精华梳理(已理解并手写)--全是干货--已结
基础部分 map,reduce,filter,sort,推导式,匿名函数lambda , 协程,异步io,上下文管理 自定义字符串转数字方法一不使用reduce import re def str2i ...
- 【原】Mac下统计任意文件夹中代码行数的工具——cloc
这里介绍一个Mac系统统计代码行数的工具cloc. 1.首先,安装homebrew,已安装的请跳过. 打开终端工具Terminal,输入下列命令.过程中会让你按RETURN键以及输入mac桌面密码,按 ...
- 代码统计工具-cloc
官网地址:http://cloc.sourceforge.net/ https://sourceforge.NET/projects/cloc/files/ 下载得到cloc-1.64.exe Clo ...
- cloc 统计代码行数工具
cloc 统计代码行数工具 官网地址:http://cloc.sourceforge.net/ 下载完成后 会生成一个.exe文件 需要修改文件名为 cloc.exe 然后把这个文件拷贝到需要统计的根 ...
- 代码统计工具cloc
https://sourceforge.net/projects/cloc/files/cloc/v1.64/
- 代码统计利器--CLOC
MAC下安装命令:$ brew install cloc 其他的linux安装 $ aptitude install cloc 使用方法.到目录下运行: $ cloc . The default ou ...
- Python实现代码统计工具——终极加速篇
Python实现代码统计工具--终极加速篇 声明 本文对于先前系列文章中实现的C/Python代码统计工具(CPLineCounter),通过C扩展接口重写核心算法加以优化,并与网上常见的统计工具做对 ...
随机推荐
- [bzoj1106]立方体大作战
先贪心,容易发现如果两个点中间没有点对,那么一定可以先把这两个点消掉分析一下,就可以发现这样两个点的答案就是这两个点对中间不成对的点数量扫描过去,线段树维护每一个点的权值(是否会被算入答案)即可 1 ...
- Treevalue(0x03)——函数树化详细解析(下篇)
好久不见,再一次回到 treevalue 系列.本文将基于上一篇treevalue讲解,继续对函数的树化机制进行详细解析,并且会更多的讲述其衍生特性及应用. 树化方法与类方法 首先,基于之前的树化函数 ...
- Codeforces 848D - Shake It!(DP)
Codeforces 题面传送门 & 洛谷题面传送门 hot tea 一道. 首先我们考虑这个奇奇怪怪的最小割有什么等价的表达.不难发现,如果我们选择了 \(S\to T\) 这条边并加入了一 ...
- 洛谷 P3239 [HNOI2015]亚瑟王(期望+dp)
题面传送门 感觉是道挺好的题,可惜当时没写题解来着的? 根据期望的线性公式,我们求出每个卡牌被发动的概率 \(q_i\),然后 \[ans=\sum\limits_{i=1}^np_id_i \] 于 ...
- 洛谷 P5299 - [PKUWC2018]Slay the Spire(组合数学+dp)
题面传送门 hot tea 啊--这种风格及难度的题放在省选 D2T1 左右还是挺喜闻乐见的罢 首先考虑对于固定的 \(m\) 张牌怎样求出最优的打牌策略,假设我们抽到了 \(p\) 张强化牌,攻击力 ...
- R语言与医学统计图形【8】颜色的选取
R语言基础绘图系统 基础绘图包之低级绘图函数--内置颜色. 1.内置颜色选取 功能657种内置颜色.colors() 调色板函数:palette(), rgb(), rainbow(). palett ...
- java数组中Arrays类
使用Arrays类之后要先导入包,即在开头添加这行: import.java.util.Arrays 1,排序:Arrays.sort(数组名) 排序后为数组升序. 2,将数组转换成字符串:Array ...
- LInkedList总结及部分底层源码分析
LInkedList总结及部分底层源码分析 1. LinkedList的实现与继承关系 继承:AbstractSequentialList 抽象类 实现:List 接口 实现:Deque 接口 实现: ...
- FTP 文件传输服务
昨晚心血来潮,尝试用python写了一个ftp文件传输服务,可以接收指令,从远程ftp服务器同步指定目录数据,最后没用上,开源出来. https://github.com/jadepeng/ftp_t ...
- 视频框架 Vitamio使用
转自http://blog.csdn.net/u010181592/article/category/5893483 1.在https://github.com/yixia/VitamioBundle ...