歡迎光臨
每天分享高質量文章

cloc:計算不同編程語言原始碼的行數 | Linux 中國

你可以用 cloc 很容易地統計多種語言的原始碼行數。它還可以計算空行數、代碼行數、實際代碼的行數,並通過整齊的表格進行結果輸出。
— Sk


致謝
編譯自 | 
https://www.ostechnix.com/cloc-count-the-lines-of-source-code-in-many-programming-languages/
 
 作者 | Sk
 譯者 | littleji ??共計翻譯:5.0 篇 貢獻時間:32 天

作為一個開發人員,你可能需要不時地向你的領導或者同事分享你目前的工作與代碼開發進展,抑或你的領導想對代碼進行全方位的分析。這時,你就需要用到一些代碼統計的工具,我知道其中一個是 Ohcount[1]。今天,我遇到了另一個程式,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[2]

  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. $ cd cloc

  3. $ cloc 157d706

cloc 可以自動識別一些語言,使用下麵的命令查看 cloc 支持的語言:

  1. $ cloc --show-lang

更新信息請查閱 cloc 的使用幫助。

  1. $ cloc --help

開始使用吧!


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

作者:SK[4] 選題:lujun9972 譯者:littleji 校對:pityonline

本文由 LCTT 原創編譯,Linux中國 榮譽推出

赞(0)

分享創造快樂

© 2021 知識星球   网站地图