あなたはあなたが望むものを行うために、よりgrep(1)
のオプションを使用する必要があります。abc
が発生した回数の合計のために
、あなたはabc
は、単一の行にある場合の世話をする必要があります2回以上:abc
が含まれているファイルの総数については
find . -name '*.txt' -print0 | xargs -0 grep -o -i abc | wc -l
は、あなたはケース単一のファイルの世話をする必要がありますgrep(1)
manページから
find . -name '*.txt' -print0 | xargs -0 grep -l -i abc | wc -l
:
-l, --files-with-matches
Suppress normal output; instead print the name of each
input file from which output would normally have been
printed. The scanning will stop on the first match.
(-l is specified by POSIX.)
と
-o, --only-matching
Print only the matched (non-empty) parts of a matching
line, with each such part on a separate output line.
私は全く同じライン上のいろはを忘れ
abc
2回以上含まれています。 スクリプトをさらに短くするには、wc –@ReubenL。にパイプするのではなく、grepの-c(count)フラグを使用して、 'xargs(1)'への入力が単一の'grep(1)'の実行 - はい、少し早く、そして多くの場合非常に短く簡単です:)しかし、ファイルの小さな山はファイルの大きな山に成長する傾向があります... – sarnold
@ sarnold、あなたの答えをありがとう。私はあなたに戻ってみることにしよう。 – Nomad