¿Puede grep resaltar el texto coincidente sin ocultar el contenido del archivo?

7

Con frecuencia uso las opciones de línea de comando de contexto de grep ( -A , -B y -C ), pero ocasionalmente quiero ver todo el archivo con expresiones coincidentes resaltadas. Para lograr esto, simplemente especifico -C 999999999 , pero esto parece tonto.

¿Hay una opción dentro del paquete grep de OS X que me permitirá aprovechar fácilmente las características de coincidencia y coloración de grep, sin ocultar ningún contenido de archivo?

    
pregunta Jason Salaz 03.08.2012 - 10:13

3 respuestas

13

No creo que haya una opción simple en grep pero parece que funciona bien. De enlace

grep --color -E "pattern|$" file

El |$ al final de la expresión regular hace que grep encuentre el patrón O el final de las líneas. Sin embargo, no puede resaltarlos, así que solo el patrón se colorea.

    
respondido por el Lauri Koskela 03.08.2012 - 11:28
6

Suponiendo que desea leer el archivo usted mismo, con los bits resaltados, menos es la mejor herramienta para el trabajo. less yourfile , escribe / , tu patrón y pulsa retorno. n va a la próxima coincidencia y space a la página siguiente.

Alternativamente, ack tiene un modo --passthru que hace lo que quieres. Ack es tan increíblemente útil que vale la pena analizarlo.

    
respondido por el Schwern 11.10.2012 - 23:22
2

Configurar -C a un entero negativo parece ser equivalente a establecer un número arbitrariamente grande.

grep something --color -C -1 *.txt

Pero al igual que con -C 9999999 , si el archivo tiene varias coincidencias, algunas líneas se pueden imprimir varias veces.

    
respondido por el user495470 03.08.2012 - 19:06

Lea otras preguntas en las etiquetas