Cloc
cloc 是一个统计代码行数的工具
除了 cloc,还有类似的工具,比如 tokei。我更推荐使用后者,原因如下
- cloc 的较新版本存在严重缺陷——目录名、文件名等包含中文字符时会出错,且作者目前 没有修改意愿
- tokei 使用 Rust 实现,速度极快
- tokei 功能更全面,比如对于 markdown,tokei 能够统计 md 内嵌的代码种类、行数,但 cloc 不行
# Windowsscoop install clocscoop install tokeicloc 的使用
Section titled “cloc 的使用”# 统计单个文件cloc hello.c# 统计单个目录cloc src# 统计一个归档cloc master.zip# 统计 git 仓库特定的提交cloc 6be804e07a5db# 报错没有 unzip 可以使用别的解压器cloc 6be804e07a5db --extract-with='tar zxf >FILE<'cloc 的输出会按语言进行分类,并单独统计文件数、空行、注释行等。比如对于我的一个 web 应用,输出的结果是这样的
-------------------------------------------------------------------------------Language files blank comment code-------------------------------------------------------------------------------JSON 68 10 0 130917JSX 116 605 41 3486JavaScript 86 455 91 2699TypeScript 50 314 11 2147reStructuredText 12 42 0 179Markdown 13 62 0 177HTML 8 0 0 105CSS 3 8 0 81SVG 1 0 0 1-------------------------------------------------------------------------------SUM: 357 1496 143 139792-------------------------------------------------------------------------------tokei 的使用
Section titled “tokei 的使用”# 统计单个文件tokei README.md# 统计单个目录tokei docs此外还有很多参数
--hidden统计隐藏文件--no-ignore统计忽略文件--output更改输出格式,包括 json/yaml/cbor--sort更改排序方式,包括 blanks/code/comments/lines--type=Rust,Markdown仅统计部分语言
这是在本项目根目录运行 tokei . 的输出 cloc 由于中文问题没有正确的输出
=============================================================================== Language Files Lines Code Comments Blanks=============================================================================== JavaScript 1 12 12 0 0 Plain Text 1 6 0 6 0 TOML 1 13 10 0 3 YAML 1 129 123 0 6------------------------------------------------------------------------------- Markdown 50 3490 0 2255 1235 |- INI 2 19 11 7 1 |- JSON 5 78 78 0 0 |- JSX 1 13 10 2 1 |- Lisp 1 14 7 7 0 |- Makefile 1 21 20 0 1 |- Python 2 16 8 8 0 |- TeX 1 6 6 0 0 |- TOML 2 18 18 0 0 |- YAML 2 13 8 3 2 (Total) 3688 166 2282 1240=============================================================================== Total 54 3650 145 2261 1244===============================================================================