grepコマンドを実行するとき:
grep -rc 'PATTERN' .
パターンが発生した行数を印刷しますが、次のようになります。
./hotel_232424.dat:234
など...
./hotel_232424.dat:
部品を取り除き、数字だけを印刷するにはどうすればよいですか?
答え1
GNU実装では/オプションをgrep
使用できます。-h
--no-filename
$ grep -rc PATTERN .
./b:1
./a:0
./1/2/c:2
$ grep -rhc PATTERN .
1
0
2
ポータブル/標準に該当するものは次のとおりです。
$ find . -type f -exec grep -c PATTERN {} \;
0
2
1
ただし、これはgrep
ファイルごとに1つの呼び出しを実行することを意味します。
代わりに、総発生回数(ここでは1+2 = 3)が必要な場合は、次のようにすることができます(移植可能)。
$ find . -type f -exec cat {} + | grep -c PATTERN
3
(一部のファイルの最後の行の後にデータがある場合(つまり、テキストではないファイル)、結果が混乱する可能性があります。)
またはgrep
あなたと同じサポートを使用してください-r
。
$ grep -r PATTERN . | wc -l
3