Есть ли способ сделать все выходные данные моего терминала окрашенными по-своему? Например: Если я введу команду: 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/
'