1

GREPを使用してフレーズの出現をカウントします

たくさんのファイルを含むディレクトリがあります。したがって、ファイルに特定のフレーズが含まれているかどうかを確認する必要がある場合は、

grep 'the phrase' mydir/*

フレーズがこれらのファイルに表示される合計回数をカウントする方法はありますか?

私は使用しましたgrep 'the phrase' mydir/* --count

しかし、それは、合計ではなく、個々のファイルでの出現を与えることになります。これは、私が望んでいることではありません。

4

3 に答える 3

5

これはそれを行う必要があります:

find mydir -print0 | xargs -0 grep 'the phrase' | wc -l

find mydir -print0-mydirectory内のすべてのファイルを検索し、それらをnullで終了する行として出力します)

xargs -0-nullで終了する行のストリームを変換し、引用符で区切られた引数に変換します。例: "mydir / file 1" "mydir / file2"...これらをgrepのarumentリストに渡すことができるようになりました。

wc -l-行数をカウントします

nullで終了する行のビジネスは、スペースが含まれているファイルを回避することと関係があります。そうしないと、これらはgrepに対する複数の引数のように見える可能性があるためです。

于 2012-05-11T16:28:45.417 に答える
1

これは、前の2つの応答よりもさらに単純です。

grep 'the phrase' mydir/* | wc -l

次に、「mydir/*」に一致するすべてのファイルにわたるgrepの出力がwc-lに送信されます。

于 2012-05-31T20:00:30.767 に答える
0
grep 'the phrase' mydir/* --count | awk 'BEGIN { FS=":"; sum=0;} { sum = sum + $2; } END { print sum } '
于 2012-05-11T16:31:16.497 に答える