読者です 読者をやめる 読者になる 読者になる

ディレクトリ内のソースコードの行数を再帰的にカウントする

ふと自分が書いたソースコードが今何行か知りたい時ってある。
ちょっと自己満足に浸りたい。そんな時だ。

ひとつのファイルの行数をカウントするのは簡単。
wcコマンドを実行すればいいだけだ。

$ wc -l testfs.py 
130 testfs.py

ところがwcには再帰的にディレクトリ内のファイルを調べる機能がない。
Googleで「wc 再帰」と検索すると以下のようなエントリも見つかるが・・・
チーズバーガー中毒: wcで再帰的にディレクトリを辿ってファイルの行数を数える
クールじゃない・・・

ということで少し考えて以下のようなものを考えてみた。
(とりあえずpythonバージョンで考えてみた。)

$ for file in $(find . -name "*.py"); do wc -l $file; done

これだと各ファイルの行数はわかるが、全体で何行かわからない。

$ wc -l $(find . -name  "*.py")

これだと全体で何行かわかる。
wcが複数のファイルを渡した時に合計を出してくれるおかげだ。
もし複数のファイルを渡せないとしたら、もう少し面倒だろう。

面倒な場合で書いてみたけど、こんな感じ

for file in $(find . -name "*.py"); do lines=$(wc -l $file | awk '{ print $1 }'); sum=$(expr $sum + $lines); done; echo $sum
||<<