Para colorear la salida de texto de un comando, se puede intentar canalizar la salida del comando a sed, como la siguiente:
su comando | sed -e 's/FALLO/^[[01;31mFALLO^[[00m/g' -e 's/ÉXITO/^[[01;32mÉXITO^[[00m/g'
También se podrían colocar esas reglas de sustitución en un archivo de texto (por ejemplo, colorize.sed) y usar lo siguiente:
su comando | sed -f colorear.sed
Esto permitirá que se asignen diferentes colores a diferentes cadenas de coincidencia. Tenga en cuenta que en mis ejemplos, '^[' significa el carácter de escape, no un quilate seguido de un corchete. El carácter de escape se puede ingresar en la regla escribiendo Ctrl-V y luego presionando la tecla de escape.
Los colores/efectos disponibles para estos códigos tty son los siguientes:
Colores de primer plano:Negro=30, Azul=34, Cian=36, Verde=32, Púrpura=35, Rojo=31, Blanco=37, Amarillo=33
Colores de fondo:Negro=40, Azul=44, Cian=46, Verde=42, Púrpura=45, Rojo=41, Blanco=47, Amarillo=43
Efectos:Normal=00, Negrita=01, Dim=02, Subrayado=04, Intermitente=05, Invertido=07, Oculto=08
Estos también se pueden combinar con un punto y coma como hice yo (es decir, 01;31 para obtener un color rojo en negrita).
Tenga en cuenta que se requiere el código '^[00m' para deshabilitar el color/efecto anterior; de lo contrario, el color/efecto persistirá después de la cadena de coincidencia. También tenga en cuenta que algunos de los efectos no funcionan (o funcionan como lo describí) con algunos emuladores de terminal.
Espero no estar simplemente repitiendo lo que alguien más ya ha dicho, porque no leí todo el hilo de discusión.
Probablemente sea más fácil colorear las palabras usted mismo, en lugar de hacer que la terminal las coloree por usted. Si no puede editar los scripts que crean la salida, ¿puede filtrarlos a través de otra cosa?
En el extremo más probable de estar disponible de la escala, podría canalizar su salida a través de grep
:
tail -F logfile | grep --color -P "FAIL|"
Esto coincide con "FAIL" o "", y resalta la parte coincidente de la cadena.
Además, podría usar algo más especializado, como se describe en esta publicación de blog, por ejemplo.