1

コマンドを実行findして、特定のテキストの合計出現数を調べようとしています。また、別の検索コマンドを使用して、このテキストを含むファイルの数を取得しようとしています。

私が今持っているのはこのコマンドです。

find . -name "*.txt" | xargs grep -i "abc"

findこれにより、テキスト abc などを含むすべてのファイルが表示されます。取得するコマンドを1 つまたは 2 つ取得したい

  1. abcが出現した合計回数
  2. abc を含むファイルの総数。
4

1 に答える 1

2

grep(1)あなたが望むことをするためにもっと多くのオプションを使う必要があります:

  1. 発生する合計回数については、1行に2回以上あるabcケースに注意する必要があります。abc

    find . -name '*.txt' -print0 | xargs -0 grep -o -i abc | wc -l
    
  2. を含むファイルの総数については、1つのファイルに2回以上abc含まれる場合に注意する必要があります。abc

    find . -name '*.txt' -print0 | xargs -0 grep -l -i abc | wc -l
    

マンページからgrep(1)

   -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.
于 2012-05-04T03:10:24.353 に答える