# 利用cloc统计代码行数

4,140 阅读1分钟

工具介绍

Cloc是一款使用Perl语言开发的开源代码统计工具。几乎支持全平台,全语言。能够计算文件数(files)、空白行数(blank)、注释行数(comment)和代码行数(code)。

cloc的优点

  • 可以对多种文件进行统计,同时支持压缩文件
  • 可以将结果输出为纯文本,SQL,JSON,XML,YAML等格式
  • 可以将多次运行的结果进行汇总输出
  • 可对git的分支进行统计

安装

支持docker安装, window 支持exe,同时也可通过其他的包管理器安装

npm install -g cloc              # https://www.npmjs.com/package/cloc
sudo apt install cloc            # Debian, Ubuntu
sudo yum install cloc            # Red Hat, Fedora
sudo dnf install cloc            # Fedora 22 or later
sudo pacman -S cloc              # Arch
sudo emerge -av dev-util/cloc    # Gentoo https://packages.gentoo.org/packages/dev-util/cloc
sudo apk add cloc                # Alpine Linux
doas pkg_add cloc                # OpenBSD
sudo pkg install cloc            # FreeBSD
sudo port install cloc           # Mac OS X with MacPorts
brew install cloc                # Mac OS X with Homebrew
choco install cloc               # Windows with Chocolatey
scoop install cloc               # Windows with Scoop

以前端为例,我们可以通过npm来安装

使用

单一文件统计

cloc README.md 

文件夹统计

cloc ./src

压缩档案统计

cloc test.zip

cloc可支持对Rar,Zip,Java .ear等压缩文件的统计

可对git特定分支进行统计

prompt> git clone http://git.tiker.net/trees/pudb.git

prompt> cd pudb

prompt> cloc 6be804e07a5db

汇总统计

可以借助shell的循环,对多文件进行多次统计,并输出统计结果

for d in ./*/ ; do (cd "$d" && echo "$d" && cloc --vcs git); done

排除某些目录

比如我们在统计前端代码的时候,希望排除node_modules目录,那么可以借助--not-match-f参数来实现

cloc --fullpath  --not-match-f=node_modules