используя консольные escape-коды цвета в sed - PullRequest
0 голосов
/ 05 января 2019

Мне нужно раскрасить линии, которые начинаются с #.

У меня есть следующий код в Perl, который отлично работает:

echo 'aaa\n#bbb\nccc' | perl -pe "s/(#.*)$/\e[0;32m\1\e[0m/"

Я пытаюсь сделать то же самое в sed, но он просто печатает цветовые коды вместо цвета:

echo 'aaa\n#bbb\nccc' | sed -r "s/(#.*)$/\e[0;32m\1\e[0m/"
aaa
e[0;32m#bbbe[0m
ccc

Почему цветовые коды не работают в sed, и что я должен делать по-другому?

1 Ответ

0 голосов
/ 05 января 2019

Используйте '\ o033' вместо '\ e': ​​

$ echo -e 'aaa\n#bbb\nccc' | sed -r "s/(#.*)$/\o033[0;32m\1\o033[0m/"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...