特定のディレクトリ配下にあるファイルの行数とかを再帰的に取得する場合、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 合計
こんな感じでやれば、指定したディレクトリ配下にある各ファイルと合計の行数がわかる。 が、さらにその中身(ファイルの種類だったり、コメント行の行数だったり…)を把握する場合は、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で出力させることも可能。 いまだにステップ数とかで成果を見てるとこなんかでは結構便利かもしれない(たぶんまだ生き残っている)。