haisenberg_ex
@haisenberg_ex
Fullstack developer

Как написать awk рулярку чтобы парсить цветной текст в выводе команд?

Допустим, выполняется какая-то команда, в выводе которой есть красные строки (красный текст)
Можно ли как-то процедить этот вывод через awk чтобы показывались только эти красные строки?
comand_with_colored_ouput | awk '/регулярка чтобы совпадала только с любым текстом красного цвета/'

Я пока на стадии такой команды
comand_with_colored_ouput | awk '/\\033\[31m(ТутЧто-тоДолжноБыть??Чего мне не хватает?)\\033\[m/'

Но она не шибко работает, может такое невозможно или я делаю что-то не так?
  • Вопрос задан
  • 247 просмотров
Решения вопроса 1
xotkot
@xotkot
хорошо есть и хорошо весьма
если на одной строке
echo -e "\033[37;1;41m Красный \033[0m\n\033[37;1;43m Желтый \033[0m\n\033[37;1;42m Зелёный \033[0m"

echo -e "\033[37;1;41m Красный \033[0m\n\033[37;1;43m Желтый \033[0m\n\033[37;1;42m Зелёный \033[0m" | awk '/\033\[37;1;41m/'


если на нескольких строках
echo -e "\033[37;1;41m Крас\nный \033[0m\n\033[37;1;43m Желтый \033[0m\n\033[37;1;42m Зелёный \033[0m"

echo -e "\033[37;1;41m Крас\nный \033[0m\n\033[37;1;43m Желтый \033[0m\n\033[37;1;42m Зелёный \033[0m" | awk '/\033\[37;1;41m/,/\033\[0m/'


в общем виде примерно так:
behave | awk '/код начала цвета/,/код конца цвета/'
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

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