clocコマンドで指定したディレクトリ配下のソースコードの種類とステップ数・カウント数や空行の数などを求める

特定のディレクトリ配下にあるファイルの行数とかを再帰的に取得する場合、wcコマンドが利用される場合が多いだろう。

wc -l $(find /PATH -type f)
blacknon@BS-PUB-UBUNTU-01:~/test_dir$ ls -la
合計 152
drwxrwxr-x 12 blacknon blacknon   4096  2月 25 16:42 .
drwxr-xr-x 15 blacknon blacknon   4096  2月 25 16:39 ..
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:41 00
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:41 10
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:41 20
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 30
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 40
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 50
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 60
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 70
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 80
drwxrwxr-x  2 blacknon blacknon   4096  2月 25 16:42 90
-rw-rw-r--  1 blacknon blacknon 102773  2月 25 16:42 text.txt
blacknon@BS-PUB-UBUNTU-01:~/test_dir$ wc -l $(find ./ -type f)
9344 ./40/test46.txt
9344 ./40/test47.txt
9344 ./40/test44.txt
9344 ./40/test48.txt
9344 ./40/test49.txt
~省略~
9344 ./80/test89.txt
9344 ./80/test82.txt
9344 ./80/test85.txt
9344 ./80/test83.txt
9344 ./text.txt
934400 合計
Sponsored Links

こんな感じでやれば、指定したディレクトリ配下にある各ファイルと合計の行数がわかる。
が、さらにその中身(ファイルの種類だったり、コメント行の行数だったり…)を把握する場合は、clocコマンドを利用すると楽だ。

インストールは、以下のコマンドで行える。

yum enablerepo=epel install cloc
apt install cloc
brew install cloc

 

インストール後は、普通に対象のディレクトリを引数として指定してやれば再帰的に確認してくれる。
出力例は以下。Golangとかでもちゃんと検知してくれる。

blacknon@BS-PUB-DEVELOP:~/go/src/github.com/blacknon/lssh$ cloc /home/blacknon/go/src
373 text files.
364 unique files.
779 files ignored.
http://cloc.sourceforge.net v 1.60  T=2.05 s (161.7 files/s, 38455.4 lines/s)
-------------------------------------------------------------------------------
Language                     files          blank        comment           code
-------------------------------------------------------------------------------
Go                             309           8222           6908          55065
Assembly                        15            613            390           7383
C                                1             37              8            152
Python                           1             15              1             94
YAML                             3              0              0             32
make                             1              5              0             14
C/C++ Header                     1              2              5              1
vim script                       1              0              0              1
-------------------------------------------------------------------------------
SUM:                           332           8894           7312          62742
-------------------------------------------------------------------------------

 

出力フォーマットも種類があって、xmlやcsvで出力させることも可能。
いまだにステップ数とかで成果を見てるとこなんかでは結構便利かもしれない(たぶんまだ生き残っている)。

 


Written by blacknon

インフラ系のSE。一時期はプログラマ。 仮想化とオープンソースに興味あり。一日中寝てたい今日このごろ。 スペインとかで働きたいなぁ…(シエスタがあるので)

Leave a Comment

メールアドレスが公開されることはありません。

*