コード行を数えますか?

コード行を数えますか?

コード行数を数えたい場合は、最も簡単な方法は次のとおりです。

cat *.c *.h | wc -l

しかし、サブディレクトリが複数ある場合はどうなりますか?

答え1

最も簡単な方法はcloc。次のように使用してください。

cloc .

それはすべてです。 :-)

答え2

おそらく使用する必要がありますSLOC数またはクロークこのため、ディレクトリ構造などに関係なく、プロジェクトのソースコード行数を計算するように特別に設計されています。

sloccount .

または

cloc .

現在のディレクトリから始まるすべてのソースコードのレポートが生成されます。

findandを使用したい場合は、wcGNUにはwc良い--files0-fromオプションがあります。

find . -name '*.[ch]' -print0 | wc --files0-from=- -l

(ありがとうございます。蛇文書~のためクロークが提案した! )

答え3

コマンドは複数の引数を使用できるため、GNU 操作に引数を使用してwc次のファイル名をすべて渡すことができます。wc+-execfind

find . -type f -name '*.[ch]' -exec wc -l {} +

またはbash、シェルオプションを使用してglobstarディレクトリを再帰的に移動できます。

shopt -s globstar
wc -l **/*.[ch]

他のシェルは、基本的に再帰的にナビゲートするか(例えば)、少なくともほとんどzsh同様のオプションを持ちます。globstar

答え4

find以下と組み合わせてxargs使用​​できますwc

find . -type f -name '*.h' -o -name '*.c' | xargs wc -l

関連情報