
當我執行 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+2 = 3),您可以這樣做(可移植):
$ find . -type f -exec cat {} + | grep -c PATTERN
3
(請注意,如果某些文件在最後一行之後有資料(因此,非文字檔案),則可能會弄亂結果)
或者,有像你這樣的grep
支持-r
:
$ grep -r PATTERN . | wc -l
3