Coloreando toda la salida del terminal

Coloreando toda la salida del terminal

¿Hay alguna manera de colorear toda la salida de mi terminal de forma personalizada? Por ejemplo: Si emito el comando: sudo apt-get update- Obtendré una columna de texto y lo que quiero es una forma de colorear ROJO si hay palabras como "ERROR" en este texto, y VERDE cualquier palabra como "HECHO" o "TERMINADO". ".

Eso es sólo un ejemplo, y entiendo que esto podría alterar la salida coloreada de otros programas, sólo tengo curiosidad por saber si esto es posible.

Estoy usando ZSH en este momento, pero acepto respuestas para cada emulador de terminal.

Respuesta1

Puede utilizar sedpara reemplazar las cadenas "ERROR", "DONE" y "FINISHED" delimitadas por límites de palabras con la misma cadena encerrada enSecuencias de escape de color ANSI(puede asignar un alias al comando ~/.bashrcpor conveniencia; como puede ver, esto funciona en Zsh, pero dado que es el terminal el que interpreta las secuencias de escape, esto funcionaría en cualquier shell que se ejecute en un terminal compatible con ANSI/VT100):

sudo apt-get update |& sed 's/\bERROR\b/\x1B[1;31m&\x1B[0m/; s/\bDONE\b/\x1B[1;32m&\x1B[0m/; s/\bFINISHED\b/\x1B[1;34m&\x1B[0m/'
sudo apt-get update |&
    sed '
        s/\bERROR\b/\x1B[1;31m&\x1B[0m/
        s/\bDONE\b/\x1B[1;32m&\x1B[0m/
        s/\bFINISHED\b/\x1B[1;34m&\x1B[0m/
    '

captura de pantalla

información relacionada