¿Cómo buscar un patrón particular en un archivo de registro y contar el número de coincidencias?

¿Cómo buscar un patrón particular en un archivo de registro y contar el número de coincidencias?

En un archivo de registro muy grande tengo entradas como:

FLUJO ENTRANDO en alguna empresa.algún paquete.datacontrol.provider.DataProvider@c37ae61.liberar()

El único cambio entre lo que difiere entre las entradas es la cadena después @y antes .release()(la parte en negrita).

Hay otras entradas como las siguientes que deben descartarse en la búsqueda:

FLUJO ENTRANDO en alguna empresa.algún paquete.datacontrol.provider.DataProvider@c37ae61.algo más()

Entonces mi patrón de búsqueda debería terminar con.release().

¿Cómo puedo saber el número de tales apariciones en el archivo de registro (el número de líneas coincidentes) y también imprimir todos los patrones coincidentes?

PD: estoy usando un entorno Linux.

Respuesta1

Creo que grep -cla opción es exclusiva: no es posible combinar la opción -c con otra opción para generar líneas coincidentes.Yun conteo. Entonces, al usar tee se obtienen los partidos.Yescriba las coincidencias en un archivo temporal y luego cuente las líneas del archivo.

grep 'FLOW ENTERING.*release()' k  | tee /tmp/grep.tmp && wc -l /tmp/grep.tmp

Respuesta2

puedes usar grep '.release()' file|wc -l

información relacionada