Окраска всего выхода с терминала

Есть ли способ сделать весь вывод моего терминала цветным? Например: если я введу команду: sudo apt-get update - я получу столбец текста, и мне нужен способ раскрасить КРАСНЫЙ, если в этом тексте есть такие слова, как «ОШИБКА», и ЗЕЛЕНЫми любые слова, такие как «ГОТОВО» или "ЗАВЕРШЕНО".

Это всего лишь пример, и я понимаю, что это может испортить цветную печать других программ, просто любопытно, если это возможно.

В данный момент я использую ZSH, но принимаю ответы для каждого эмулятора терминала.

2
задан 9 April 2016 в 23:52

1 ответ

Можно использовать 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/
    '

screenshot

1
ответ дан 10 April 2016 в 09:52

Другие вопросы по тегам:

Похожие вопросы: