![Colorindo todas as saídas do terminal](https://rvso.com/image/1087127/Colorindo%20todas%20as%20sa%C3%ADdas%20do%20terminal.png)
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 sed
para 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 ~/.bashrc
por 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/
'