Para mostrar linhas correspondentes, conte-as e mostre a contagem com awk
:
awk '/ERROR/{err++; print} END{print "errors:", err}'
Para resumir erros e exceções:
awk '/ERROR/||/Exception/{faults++; print} END{print "faults:", faults}'
Para contar erros e exceções separadamente:
awk '/ERROR/{err++; print} /Exception/{exc++; print}
END{print "errors:", err, "exceptions:", exc}'
Nota: Os programas awk funcionam como filtro, eles lêem da entrada padrão e gravam na saída padrão, mas você também pode fornecer os arquivos de dados como argumentos. Então, para usar é (como solicitado no comentário abaixo) com um ou mais arquivos de log use awk '...' *.log
, ou se você quiser um ou mais arquivos gz descompactados antes de analisá-los com awk
use, por exemplo, zcat *.gz | awk '...'
( onde você substitui qualquer um dos programas awk
acima por awk '...'
).