ShellScript
ワンライナー

特定ディレクトリ以下のプログラムの行数を調べたい

More than 1 year has passed since last update.


結論

find . -name "*.php" | xargs wc -l | awk '{a+=$1} END{print a;}'

行数を調べたいディレクトリに移動して上記コマンド実行すれば指定した拡張子の行数の合計を調べることができる。


find

find . -name "*.php"

指定ディレクトリ以下の指定拡張子を全部取得できる


xargs

説明する必要もあまりないかと思うが、別のコマンドの結果を引数として渡して実行できる。

この場合、findの結果をwcの引数として使っている。


wc

ファイルのバイト数や行数などを取得できる。

-l で行数

-c でバイト数

-m で文字数


awk

空白などで区切られたテキストを処理するコマンド。

一行ずつ処理されていくので、行数を変数に加算していくことですべての行数の総和を出力している。


使用例

$ find . -name "*.php" | xargs wc -l | awk '{a+=$1} END{print a;}'

418588

なるほど、40万行あったんですね。