Tengo un programa que escupe una salida para stdoutgustar:
[OK] Something is ok
[OK] Something else is also ok
[FAIL] This does not look good
[FAIL] Neither does this
[OK] At least this is fine
Para detectar más fácilmente las fallas de la salida, me gustaría marcar las ocurrencias de la palabra clave FAILcon rojo sin descartar los otros mensajes. Sería bueno si también pudiera resaltar las OKpalabras clave con verde :).
Hacer una canalización egrep --color FAILsolo mostrará las líneas donde FAILestá presente la palabra clave.

grepsolución, visite unix.stackexchange.com/a/34322tail -fyawkla magia, soy bueno para ir =)Respuestas:
Basado en
manatworkel pequeño truco brillante "o nada" en la otra pregunta, ofrezco esto, que agrega la capacidad de obtener dos colores destacados:Es decir, ejecuta
grepel resultado dos veces, con unaGREP_COLORSvariable de entorno diferente cada vez.El valor '01; 32 'significa "negrita verde", y el otro significa "negrita rojo". Consulte el artículo de Wikipedia sobre códigos ANSI para obtener más ideas.
Por desgracia, esto requiere GNU grep versión 2.5.3 o superior. Las versiones anteriores de GNU grep admitían un mecanismo de coloración diferente, pero esas versiones tienen un error que le impide usar la función en una tubería más de una vez. BSD grep emula el antiguo mecanismo de coloración grep de GNU, y funcionará dos veces en una tubería, pero grita sobre "subexpresión vacía" debido al
manatworkhack.Puede eliminar las barras diagonales inversas al final de las dos primeras líneas para que sea una sola línea. Lo acabo de dividir aquí para mayor claridad y para jugar bien con el formato de página SE.
fuente
GREP_COLORS, en plural. UtilizaGREP_COLORsolo el método anterior , y ese método tiene un error que le impide hacer lo correcto. Si cambia el comando a utilizarGREP_COLOR=32y tal, solo cambiará el color de resaltado de la primera coincidencia. Si canaliza el resultadohexdump -cpuede ver que agregar el segundoegrepcomando hace algo, pero no es ANSI legal. En pocas palabras: debe actualizargreppara que esto funcione correctamente.GREP_COLORerror (singular), a pesar de que la función fue obsoleta tan pronto como se reemplazó.Puede usar multitail o ccze para esto, ambos permiten que las configuraciones describan expresiones regulares para combinar y colores.
fuente
Basado en la respuesta de Warren Young, escribí este script de Python que hace lo mismo de manera más elegante y con mucho menos tipeo. Así es como usarías ese script:
fuente