cloc:计算不同编程语言源代码的行数
创始人
2024-03-02 00:36:38
0

作为一个开发人员,你可能需要不时地向你的领导或者同事分享你目前的工作与代码开发进展,抑或你的领导想对代码进行全方位的分析。这时,你就需要用到一些代码统计的工具,我知道其中一个是 Ohcount。今天,我遇到了另一个程序,cloc。你可以用 cloc 很容易地统计多种语言的源代码行数。它还可以计算空行数、代码行数、实际代码的行数,并通过整齐的表格进行结果输出。cloc 是自由开源的跨平台程序,使用 Perl 进行开发。

特点

cloc 有很多优势:

  • 安装方便而且易用,不需要额外的依赖项
  • 可移植
  • 支持多种的结果格式导出,包括:纯文本、SQL、JSON、XML、YAML、CSV
  • 可以计算 git 的提交数
  • 可递归计算文件夹内的代码行数
  • 可计算压缩后的文件,如:tar、zip、Java 的 .ear 等类型
  • 开源,跨平台

安装

cloc 的安装包在大多数的类 Unix 操作系统的默认软件库内,所以你只需要使用默认的包管理器安装即可。

Arch Linux:

$ sudo pacman -S cloc

Debian/Ubuntu:

$ sudo apt-get install cloc

CentOS/Red Hat/Scientific Linux:

$ sudo yum install cloc

Fedora:

$ sudo dnf install cloc

FreeBSD:

$ sudo pkg install cloc

当然你也可以使用第三方的包管理器,比如 NPM

$ npm install -g cloc

统计多种语言代码数据的使用举例

首先来几个简单的例子,比如下面在我目前工作目录中的的 C 代码。

$ cat hello.c
#include 
int main()
{
    // printf() displays the string inside quotation
    printf("Hello, World!");
    return 0;
}

想要计算行数,只需要简单运行:

$ cloc hello.c

输出:

第一列是被分析文件的编程语言,上面我们可以看到这个文件是用 C 语言编写的。

第二列显示的是该种语言有多少文件,图中说明只有一个。

第三列显示空行的数量,图中显示是 0 行。

第四列显示注释的行数。

第五列显示该文件中实际的代码总行数。

这是一个有只有 6 行代码的源文件,我们看到统计的还算准确,那么如果用来统计一个行数较多的源文件呢?

$ cloc file.tar.gz

输出:

上述输出结果如果手动统计准确的代码行数非常困难,但是 cloc 只需要几秒,而且以易读的表格格式显示结果。你还可以在最后查看每个部分的总计,这在分析程序的源代码时非常方便。

除了源代码文件,cloc 还能递归计算各个目录及其子目录下的文件、压缩包、甚至 git commit 数目等。

文件夹中使用的例子:

$ cloc dir/

子文件夹中使用的例子*:

$ cloc dir/cloc/tests

计算一个压缩包中源代码的行数:

$ cloc archive.zip

你还可以计算一个 git 项目,也可以像下面这样针对某次提交时的状态统计:

$ git clone https://github.com/AlDanial/cloc.git

$ cd cloc

$ cloc 157d706

cloc 可以自动识别一些语言,使用下面的命令查看 cloc 支持的语言:

$ cloc --show-lang

更新信息请查阅 cloc 的使用帮助。

$ cloc --help

开始使用吧!


via: https://www.ostechnix.com/cloc-count-the-lines-of-source-code-in-many-programming-languages/

作者:SK 选题:lujun9972 译者:littleji 校对:pityonline

本文由 LCTT 原创编译,Linux中国 荣誉推出

相关内容

国家网安通报中心预警:近期...
国家网络安全通报中心4月10日发布预警,近期集中爆发多起供应链投毒...
2026-04-10 22:33:45
大厂“牛马”,被迫用AI
作者 | 定焦One 王璐 金玙璠 王汉星 雷晶 陈丹 李梦冉 ...
2026-04-08 19:20:32
AI编程:“全民狂欢” v...
AI让人人都能写代码,但没人告诉你,代码写出来之后怎么办。 4月6...
2026-04-07 16:47:29
谷歌全新Gemma4开源大...
【太平洋科技快讯】谷歌 DeepMind 正式推出 Gemma 4...
2026-04-03 20:43:38
AI编程的底牌,原来这么不...
这或许是2026年愚人节前夜,科技圈收到的最荒诞也最“硬核”的一份...
2026-04-01 20:36:59
史诗级泄露!51.2万行,...
Anthropic遭遇一场堪称业界最大规模的代码泄露事件。Clau...
2026-04-01 15:12:00

热门资讯

PHP最佳实践(译) 简介PHP是一门复杂的语言,经过多年折腾,使其不同版本之间高度不一致,有时还有些bug。 每个版本都...
值得收藏的 27 个机器学习的... 机器学习 ( Machine Learning ) 有很多方面,当我开始研究学习它时,我发现了各种各...
为什么计量 IT 的生产力如此... 在某些行业里,人们可以根据一些测量标准判定一个人的生产力。比如,如果你是一个零件制造商,可以通过一个...
8 个提升你的隐私防护的开源密... 使用一些顶级开源密码管理器,确保你的登录凭证安全无虞。密码管理器是一项非常有用的实用程序。在你想寻找...
硬核观察 #885 苹果 AR... 苹果 AR 眼镜被无限期推迟据报道,由于技术上的挑战,苹果公司已经无限期推迟了其轻型增强现实(AR)...
8个有趣的Linux提示与技巧... 我们时不时给你带来关于Linux的提示与技巧。和这个系列保持一致,这里有8个我们从读者收到最有趣的提...
Helix:高级 Linux ... 说到 基于终端的文本编辑器,通常 Vim、Emacs 和 Nano 受到了关注。这并不意味着没有其他...
2020 年的 GitHub ... 距离 2020 年结束只剩下区区 24 天,我们即将结束魔幻的 2020 ,迎来新的一年,新的一年或...
开源新闻速递:openSUSE... 今日关注openSUSE 项目组的 Dominique Leuenberger 在他的周报中说:“这...
KDE4.11 Beta1 正...   KDE 项目工作组刚刚发布了 KDE Software Compilation 4.11 Bet...