14

次のような再帰的なgrep検索を実行しようとしています:

grep -r -c "foo" /some/directory

次のような出力が得られます。

/some/directory/somefile_2013-04-08.txt:0
/some/directory/somefile_2013-04-09.txt:1
/some/directory/somefile_2013-04-10.txt:4
...etc

ただし、次のように、すべてのファイルの一致の総数を取得したいと思います。

Total matches:    5

このスレッドなどの他の例を試してみましたが、それほど単純であるべきことはできないようです。

4

4 に答える 4

30
grep -ro "foo" /some/directory | wc -l | xargs echo "Total matches :"

-oオプションは、ファイル内の文字列の既存の出現をすべてgrep出力します。

于 2013-04-21T00:49:55.380 に答える
9

パイプして grep するだけです。

grep -r "foo" /some/directory | grep -c "foo"
于 2014-01-24T02:35:02.013 に答える
2

合計のみが必要な場合は、各ファイルのカウントの取得をスキップして、一致した行の総数のみを取得できます。

grep -r "foo" /some/directory | wc -l
于 2013-04-21T00:49:29.920 に答える