cloc - 许多编程语言中的代码行计数

在处理不同项目时,有时可能需要提供进度报告或统计信息,或计算代码值。

在处理不同的项目时,有时您可能需要提供进度报告或统计信息,或者只是计算代码的价值。

有一个简单但功能强大的工具叫做“ cloc - count lines of code ”,它允许你计算所有代码的数量并同时排除注释和空行。

它适用于所有主要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
Linux Bash脚本

Linux Bash脚本

现在让我们运行cloc。

$ cloc bash_script.sh
计算文件中的行数

计算文件中的行数

正如您所看到的,它计算了文件数,空行,注释和代码行。

cloc的另一个很酷的功能是甚至可以在压缩文件上使用。 例如,我已经下载了最新的WordPress存档并在其上运行cloc

$ cloc latest.tar.gz

结果如下:

计算压缩文件的行数

计算压缩文件的行数

您可以看到它识别不同类型的代码并分离每种语言的统计信息。

如果您需要获取目录中多个文件的报告,可以使用“--by-file”选项,这将计算每个文件中的行并为它们提供报告。 对于包含许多文件和数千行代码的项目,这可能需要一段时间。

语法如下:

$ cloc --by-file <directory>
计算多个文件的行数

计算多个文件的行数

虽然cloc的帮助很容易阅读和理解,但我将包含一些可以与cloc一起使用的额外选项,一些用户可能会觉得有用。

  • --diff <set1> <set2> - 计算set1set2的源文件之间的代码差异。 输入可以是文件和目录的混合。
  • --git - 强制输入被识别为git目标,如果它们首先未被识别为文件或目录名称。
  • --ignore-whitespace - 在使用--diff比较文件时忽略水平空格。
  • --max-file-size=<MB> - 如果要跳过大于给定金额MB的文件。
  • --exclude-dir=<dir1>,<dir2> - 排除给定的逗号分隔目录。
  • --exclude-ext=<ext1>,<ext2> - 排除给定的文件扩展名。
  • --csv - 将结果导出为CSV文件格式。
  • --csv-delimiter=<C> - 使用字符<C>作为分隔符。
  • --out=<file> - 将结果保存到<file>
  • --quiet - 禁止所有信息消息并仅显示最终报告。
  • --sql=<file> - 将结果写为create和insert语句,这些语句可以由SQLite等数据库程序读取。
结论

Cloc是一个有用的实用工具,对你的武器库来说绝对是好事。 虽然它可能不会每天使用,但它可以在您必须生成某些报告时帮助您,或者您只是好奇您的项目是如何进行的。


分享按钮