网站搜索

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 – 计算set1set2源文件之间的代码差异。输入可以是文件和目录的混合。
  • --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 是一个小有用的实用程序,绝对值得您拥有。虽然它可能不会每天使用,但当您必须生成一些报告或者您只是好奇您的项目进展如何时,它可以为您提供帮助。