cloc - 计算多种编程语言的代码行数
在处理不同的项目时,有时您可能需要提供进度报告或统计数据,或者只是计算代码的价值。
有一个简单而强大的工具,称为“cloc – 计算代码行数”,它允许您计算所有代码的数量并同时排除注释和空白行。
它适用于所有主要的 Linux 发行版,支持多种编程语言和文件扩展名,并且没有任何特定的使用要求。
在本教程中,您将学习如何在 Linux 系统上安装和使用 cloc。
如何在 Linux 系统中安装和使用 Cloc
安装cloc非常简单。下面您可以看到如何在不同的操作系统中安装 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
sudo pkg install cloc # FreeBSD
sudo port install cloc # Mac OS X with MacPorts
brew install cloc # Mac OS X with Homebrew
npm install -g cloc # https://www.npmjs.com/package/cloc
Cloc 可用于计算特定文件或目录中多个文件的行数。要使用cloc,只需键入cloc,然后输入您要检查的文件或目录。
这是 bash 中文件的示例。有问题的文件在 bash 中包含以下代码:
cat bash_script.sh
现在让我们运行 cloc 吧。
cloc bash_script.sh
正如您所看到的,它计算了文件数、空行数、注释数和代码行数。
cloc 的另一个很酷的功能是它甚至可以用于压缩文件。例如,我下载了最新的 WordPress 存档并在其上运行 cloc。
cloc latest.tar.gz
结果如下:
您可以看到它识别不同类型的代码并区分每种语言的统计信息。
如果您需要获取目录中多个文件的报告,您可以使用“--by-file”选项,该选项将计算每个文件中的行数并为它们提供报告。对于具有许多文件和数千行代码的项目来说,这可能需要一段时间。
语法如下:
cloc --by-file <directory>
虽然 cloc 的帮助很容易阅读和理解,但我将包含一些可与 cloc 一起使用的额外选项,某些用户可能会觉得有用。
--diff
– 计算set1和set2源文件之间的代码差异。输入可以是文件和目录的混合。--git
– 如果输入没有首先被识别为文件或目录名,则强制输入被识别为 git 目标。--ignore-whitespace
– 使用--diff
比较文件时忽略水平空白。--max-file-size=
– 如果您想跳过大于给定 MB 量的文件。--exclude-dir=
– 排除给定的逗号分隔目录。, --exclude-ext=
– 排除给定的文件扩展名。, --csv
– 将结果导出为 CSV 文件格式。--csv-delimiter=
– 使用字符
作为分隔符。--out=
– 将结果保存到<file>
。--quiet
– 抑制所有信息消息并仅显示最终报告。--sql=
– 将结果写入可由数据库程序(例如 SQLite)读取的 create 和 insert 语句。
结论
Cloc 是一个小有用的实用程序,绝对值得您拥有。虽然它可能不会每天使用,但当您必须生成一些报告或者您只是好奇您的项目进展如何时,它可以为您提供帮助。