Есть ли способ сделать весь вывод моего терминала цветным? Например: если я введу команду: sudo apt-get update
- я получу столбец текста, и мне нужен способ раскрасить КРАСНЫЙ, если в этом тексте есть такие слова, как «ОШИБКА», и ЗЕЛЕНЫми любые слова, такие как «ГОТОВО» или "ЗАВЕРШЕНО".
Это всего лишь пример, и я понимаю, что это может испортить цветную печать других программ, просто любопытно, если это возможно.
В данный момент я использую ZSH, но принимаю ответы для каждого эмулятора терминала.
Можно использовать sed
для замены разграниченной словом-границей "ОШИБКИ" "СДЕЛАННЫЕ" и "ЗАКОНЧЕННЫЕ" строки с той же строкой, включенной в ANSI, окрашивают escape-последовательности (Вы могли исказить команду в ~/.bashrc
для удобства; поскольку Вы видите, что это работает в Zsh, но так как это - терминал, который интерпретирует escape-последовательности, это работало бы в любой оболочке, работающей в 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/
'