cloc:计算不同编程语言源代码的行数

开源 开发工具
作为一个开发人员,你可能需要不时地向你的领导或者同事分享你目前的工作与代码开发进展,抑或你的领导想对代码进行全方位的分析。这时,你就需要用到一些代码统计的工具,我知道其中一个是 Ohcount。今天,我遇到了另一个程序,cloc。你可以用 cloc 很容易地统计多种语言的源代码行数。

https://s4.51cto.com/oss/201810/15/ff4e87136a4a732983a6a163c19848fc.png

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

特点

cloc 有很多优势:

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

安装

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

Arch Linux:

  1. $ sudo pacman -S cloc

Debian/Ubuntu:

  1. $ sudo apt-get install cloc

CentOS/Red Hat/Scientific Linux:

  1. $ sudo yum install cloc

Fedora:

  1. $ sudo dnf install cloc

FreeBSD:

  1. $ sudo pkg install cloc

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

  1. $ npm install -g cloc

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

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

  1. $ cat hello.c
  2. #include <stdio.h>
  3. int main()
  4. {
  5. // printf() displays the string inside quotation
  6. printf("Hello, World!");
  7. return 0;
  8. }

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

  1. $ cloc hello.c

输出:

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

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

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

第四列显示注释的行数。

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

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

  1. $ cloc file.tar.gz

输出:

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

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

文件夹中使用的例子:

  1. $ cloc dir/

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

  1. $ cloc dir/cloc/tests

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

  1. $ cloc archive.zip

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

  1. $ git clone https://github.com/AlDanial/cloc.git
  2.  
  3. $ cd cloc
  4.  
  5. $ cloc 157d706

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

  1. $ cloc --show-lang

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

  1. $ cloc --help

开始使用吧! 

责任编辑:庞桂玉 来源: Linux中国
相关推荐

2024-04-24 12:03:20

2010-03-11 14:13:20

Python编程

2010-03-19 16:51:53

Java Socket

2011-08-11 10:12:11

2021-07-20 15:42:05

编程语言PythonJava

2011-12-21 09:01:28

云计算编程开发

2015-03-06 17:36:46

Folders编程语言

2011-08-24 17:15:33

Lua源代码文件

2023-04-10 18:34:25

编程语言开发

2010-03-16 14:48:02

云计算

2021-12-02 10:16:10

机器人编程语言计算机语言

2017-10-30 08:53:22

2022-05-26 07:53:33

Python代码编程语言

2009-12-15 19:18:39

Ruby源代码

2023-11-06 07:51:24

C++线程编程

2009-07-03 09:29:24

KeelKit

2009-04-03 08:28:39

2012-05-11 10:00:37

PaaS云计算编程语言

2023-08-07 09:51:58

2021-09-17 15:18:19

编程语言CPython
点赞
收藏

51CTO技术栈公众号