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 -c
la 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