cloc 全名是 Count Lines of Code , 為一個計算 code 和設定檔行數的 CLI 工具,是使用 Perl 語言開發的開源統計工具。cloc 支援非常多程式語言、平台、格式的統計,可以快速地計算一個 project 中所有文件的行數、空行、註釋行等等。有時候在寫一些報告會用到,可以幫助整理資料。

在看一個新 project 的時候,有時候 BOSS 會想了解下 code 量。最古老方便的方法是單純使用 linux 預設命令,例如統計我自己這個 blog 的 java category 文章行數:

find ./content/posts/java -type f  | xargs wc -l

但是 wc 使用上還是蠻不方便的,例如 code 裡面的註釋、空白行等就無法統計了。這時候就可以用更高級的工具 cloc


安裝

cloc 可以在大多數 Unix 和 Linux 系統上使用,至於要使用那種包管裡工具,可以參考之前寫的 [apt、yum、apk 介绍]。命令安裝:

# Debian / Ubuntu
sudo apt-get install cloc

# Fedora / Red Hat / CentOS
sudo yum install cloc

# macOS
brew install cloc

格式及語法

cloc [options] [file(s)/dir(s)/archive(s)]

其中 options 可以使用:

  • -h: 顯示幫助信息
  • --exclude-dir=<dir>: 排除指定的目錄
  • --exclude-lang=<language>: 排除指定的語言
  • –csv: 結果輸出為 CSV 格式
  • –json: 結果輸出為 JSON 格式

範例

cloc ./content/posts/java

## 以下為輸出
  9 text files.
  9 unique files.
  1 file ignored.

github.com/AlDanial/cloc v 1.82  T=0.03 s (317.8 files/s, 33505.0 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Markdown                         9            256              0            693
-------------------------------------------------------------------------------
SUM:                             9            256              0            693
-------------------------------------------------------------------------------

cloc 甚至可以在 .tar.gz 上使用。