Contagem do número total de correspondências com grep em vez de quantas linhas correspondem

28

O grep oferece uma maneira de contar o número total de correspondências que faz? A opção -c só retorna o número de linhas que correspondem à regex, mas neste caso eu tenho várias correspondências por linha.

    
por William 24.09.2011 / 23:02

2 respostas

28

tente isto:

grep -o -E "your expression" file |wc -l

bem, -E é apenas um exemplo, poderia ser -P, -F etc. ponto é -o

teste:

kent$  echo "abc xxx yyy"|grep -cP "[a-z]{3}"      
1

kent$  echo "abc xxx yyy"|grep -oP "[a-z]{3}"|wc -l
3
    
por 24.09.2011 / 23:18
8

Existe um sinalizador -o que indica que somente a subseção correspondente da linha deve ser impressa.

Use isso em conjunto com wc -l:

grep -o "part of line" | wc -l
O

homem grep explica isso também.

    
por 24.09.2011 / 23:22