Colorindo todas as saídas do terminal

Colorindo todas as saídas do terminal

Existe uma maneira de colorir toda a saída do meu terminal de forma personalizada? ex.: Se eu emitir o comando: sudo apt-get update- Vou pegar uma coluna de texto e o que eu quero é uma forma de colorir de VERMELHO se houver alguma palavra como "ERRO" neste texto, e de VERDE qualquer palavra como "FEITO" ou "FINISHED" ".

Isso é apenas um exemplo, e eu entendo que isso pode atrapalhar a saída colorida de outros programas, só estou curioso para saber se isso é possível.

Estou usando o ZSH no momento, mas aceito respostas para todos os emuladores de terminal.

Responder1

Você pode usar sedpara substituir strings "ERROR", "DONE" e "FINISHED" delimitadas por limites de palavras pela mesma string entreSequências de escape de cores ANSI(você pode usar o alias do comando ~/.bashrcpor conveniência; como você pode ver, isso funciona no Zsh, mas como é o terminal que interpreta as sequências de escape, isso funcionaria em qualquer shell em execução em um terminal compatível com 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 tela

informação relacionada