8 votos

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

Yo uso con frecuencia grep de las opciones de la línea de comando del contexto de la empresa ( -A , -B y -C ), pero de vez en cuando quiero ver todo el archivo con las expresiones de coincidencia resaltadas. Para lograr esto actualmente sólo tengo que especificar -C 999999999 pero esto parece una tontería.

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

16voto

Jeff Shattock Puntos 235

No creo que haya una opción sencilla en el grep pero parece que funciona bien. Desde http://stackoverflow.com/a/981831

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

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

6voto

Schwern Puntos 218

Suponiendo que quieras leer el archivo tú mismo, con los bits resaltados, menos es la mejor herramienta para el trabajo. less yourfile escriba / tu patrón y el retorno del golpe. n va al siguiente partido y space a la siguiente página.

Alternativamente, ack tiene un --passthru que hace lo que quieres. ack es tan insanamente útil que vale la pena investigarlo.

2voto

Configuración -C a un número entero negativo parece equivaler a fijarlo en un número arbitrariamente grande.

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

Pero como con algo como -C 9999999 si el archivo tiene varias coincidencias, algunas líneas pueden imprimirse varias veces.

AppleAyuda.com

AppleAyuda es una comunidad de usuarios de los productos de Apple en la que puedes resolver tus problemas y dudas.
Puedes consultar las preguntas de otros usuarios, hacer tus propias preguntas o resolver las de los demás.

Powered by:

X