Como procurar um determinado padrão em um arquivo de log e contar o número de correspondências?

1

Em um arquivo de log muito grande, tenho entradas como:

FLOW ENTERING somecompany.somepackage.datacontrol.provider.DataProvider@c37ae61.release()

A única alteração entre o que difere entre as entradas é a string após o @ e antes do .release() (a parte em negrito).

Existem outras entradas como as seguintes, que precisam ser descartadas na pesquisa:

FLOW ENTERING somecompany.somepackage.datacontrol.provider.DataProvider@c37ae61.somethingelse()

Então, meu padrão de pesquisa deve terminar com .release() .

Como posso saber o número de tais ocorrências no arquivo de log (o número de linhas correspondentes) e também imprimir todos os padrões correspondentes?

P.S: estou usando o ambiente Linux.

    
por Geek 24.03.2014 / 11:25

2 respostas

1

Acho que a opção grep -c é exclusiva - não é possível combinar a opção -c com outra opção para gerar linhas correspondentes AND uma contagem. Então, usando tee saídas as correspondências AND gravam as correspondências em um arquivo temporário e contam as linhas no arquivo.

grep 'FLOW ENTERING.*release()' k  | tee /tmp/grep.tmp && wc -l /tmp/grep.tmp
    
por 24.03.2014 / 11:53
-1

você pode usar grep '.release()' file|wc -l

    
por 24.03.2014 / 16:05

Tags