1. ホーム
  2. bash

[解決済み] あるディレクトリにあるすべてのコード行を再帰的にカウントするにはどうすればよいですか?

2022-03-16 10:42:37

質問

PHP アプリケーションがあり、特定のディレクトリとそのサブディレクトリの下にあるすべてのコード行を数えたいと思っています。

大まかなイメージをつかむだけなので、コメントを無視する必要はありません。

wc -l *.php 

このコマンドは指定されたディレクトリに対してはうまく機能しますが、サブディレクトリは無視されます。次のコメントでうまくいくかもしれないと思ったのですが、74が返されていて、これは間違いなく違います...。

find . -name '*.php' | wc -l

あるディレクトリからすべてのファイルを再帰的に送り込むための正しい構文は何ですか?

どのように解決するのですか?

試してみてください。

find . -name '*.php' | xargs wc -l

または(ファイル名にスペースなどの特殊文字が含まれる場合)。

find . -name '*.php' | sed 's/.*/"&"/' | xargs  wc -l

SLOCCount ツール も役立つかもしれません。

これは、どのようなものであれ、正確なソースコード行数を表示します。 の階層を指定し、さらにいくつかの統計を取ることができます。

ソートされた出力です。

find . -name '*.php' | xargs wc -l | sort -nr