56

を使用して、すべてのサブディレクトリ内のすべてのファイルのすべての行をカウントするにはどうすればよいwcですか?

cd mydir
wc -l *
..
11723 total

man wc提案wc -l --files0-from=-しますが、すべてのファイルのリストを次のように生成する方法がわかりませんNUL-terminated names

find . -print | wc -l --files0-from=-

動作しませんでした。

4

7 に答える 7

101

おそらくこれが必要です:

find . -type f -print0 | wc -l --files0-from=-

行の総数のみが必要な場合は、次を使用できます

find . -type f -exec cat {} + | wc -l
于 2012-12-05T16:44:22.543 に答える
9

execのオプションを探しているのかもしれませんfind

find . -type f -exec wc -l {} \; | awk '{total += $1} END {print total}'
于 2012-12-05T16:44:16.127 に答える
6

特定のファイル拡張子のすべての行をカウントするには、使用できます。

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

2つ以上の異なるタイプのファイルでそれが必要な場合は、-oオプションを付けることができます

find . -name '*.fileextension1' -o -name '*.fileextension2' | xargs wc -l
于 2014-09-30T10:00:59.297 に答える
1

私は次のようなものを提案します

find ./ -type f | xargs wc -l | cut -c 1-8 | awk '{total += $1} END {print total}'
于 2012-12-05T16:41:43.507 に答える
-2

ここでのゲームには少し遅れていますが、これもうまくいきませんか?find . -type f | wc -l

これは、「find」コマンドによって出力されたすべての行をカウントします。「検索」を微調整して、必要なものを表示できます。私はそれを使用して、深いツリーの特定のサブディレクトリ内のサブディレクトリの数を数えています: find ./*/*/*/*/*/*/TOC -type d | wc -l. 出力: 76435. (すべてのアスタリスクを介さずに検索を実行すると、エラーが発生しました。)

于 2013-10-15T16:37:56.600 に答える