Com a implementação GNU de grep
, você tem a opção -h
/ --no-filename
para isso.
$ grep -rc PATTERN .
./b:1
./a:0
./1/2/c:2
$ grep -rhc PATTERN .
1
0
2
O equivalente portátil / padrão seria:
$ find . -type f -exec grep -c PATTERN {} \;
0
2
1
mas significaria executar uma invocação de grep
por arquivo.
Se, em vez disso, você quiser o número total de ocorrências (1 + 2 = 3 aqui), você pode fazer (portavelmente):
$ find . -type f -exec cat {} + | grep -c PATTERN
3
(observe que, se alguns arquivos tiverem dados após a última linha (portanto, arquivos que não são de texto), isso pode atrapalhar o resultado)
Ou com um grep
suportando -r
como o seu:
$ grep -r PATTERN . | wc -l
3