Раскрашивание всего вывода с терминала

Раскрашивание всего вывода с терминала

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

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

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

решение1

Вы можете использовать его sedдля замены строк "ERROR", "DONE" и "FINISHED", разделенных на слова, на ту же строку, заключенную вПоследовательности перехода цвета ANSI(для удобства можно использовать псевдоним команды ~/.bashrc; как видите, это работает в Zsh, но поскольку именно терминал интерпретирует управляющие последовательности, это будет работать в любой оболочке, запущенной в терминале, совместимом с 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/
    '

Скриншот

Связанный контент