Linux中國

cloc:計算不同編程語言源代碼的行數

作為一個開發人員,你可能需要不時地向你的領導或者同事分享你目前的工作與代碼開發進展,抑或你的領導想對代碼進行全方位的分析。這時,你就需要用到一些代碼統計的工具,我知道其中一個是 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 <stdio.h>
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中國 榮譽推出


本文轉載來自 Linux 中國: https://github.com/Linux-CN/archive

對這篇文章感覺如何?

太棒了
0
不錯
0
愛死了
0
不太好
0
感覺很糟
0
雨落清風。心向陽

    You may also like

    Leave a reply

    您的郵箱地址不會被公開。 必填項已用 * 標註

    這個站點使用 Akismet 來減少垃圾評論。了解你的評論數據如何被處理

    More in:Linux中國

    Linux中國

    捐贈 Let&apos;s Encrypt,共建安全的互聯網

    隨著 Mozilla、蘋果和谷歌對沃通和 StartCom 這兩家 CA 公司處罰落定,很多使用這兩家 CA 所簽發證書的網站紛紛尋求新的證書籤發商。有一個非盈利組織可以為大家提供了免費、可靠和安全的 SSL 證書服務,這就是 Let's Encrypt 項目。現在,它需要您的幫助
    Linux中國

    關於Linux防火牆iptables的面試問答

    Nishita Agarwal是Tecmint的用戶,她將分享關於她剛剛經歷的一家公司(印度的一家私人公司Pune)的面試經驗。在面試中她被問及許多不同的問題,但她是iptables方面的專家,因此她想分享這些關於iptables的問題和相應的答案給那些以後可能會進行相關面試的人。 所有的問題和相應的答案都基於Nishita Agarwal的記憶並經過了重寫。 嗨,朋友!我叫Nishita Agarwal。我已經取得了理學學士學位,我的專業集中在UNIX和它的變種(BSD,Linux)。它們一直深深的吸引著我。我在存儲方面有1年多的經驗。我正在尋求職業上的變化,並將供職於印度的P
    Linux中國

    Lets Encrypt 已被所有主流瀏覽器所信任

    旨在讓每個網站都能使用 HTTPS 加密的非贏利組織 Lets Encrypt 已經得了 IdenTrust的交叉簽名,這意味著其證書現在已經可以被所有主流的瀏覽器所信任。從這個裡程碑事件開始,訪問者訪問使用了Lets Encrypt 證書的網站不再需要特別配置就可以得到 HTTPS 安全保護了。 Lets Encrypt 的兩個中級證書 ...