Вы захотите поговорить с Джоном.
Может использоваться вместе с гидрой.
Я искал решение именно этого вопроса bash. Я чуть не пропустил комментарий @Thomas Dickey, который дал мне самое элегантное решение.
echo -e $(cat test.txt)
Некоторые вещи, которые не сработали для меня, это (очевидно, что вы не можете передавать вещи в эхо)
cat test.txt | echo -e
или
less -R test.txt
Еще одна проблема, с которой я столкнулся, заключалась в том, что echo -e не печатал корректно новые строки и смежные пробелы в файле. Чтобы распечатать их, я использовал следующее.
echo -ne $(cat test.txt | sed 's/$/\\n/' | sed 's/ /\\a /g')
Это работает для файла test.txt, содержащего
\e[0;31mExa mple\e[0m
\e[0;31mExample line2\e[0m
Если вы не видите цвет от кошки
, возможно, управляющие символы повреждены.
Некоторые инструменты удаляют управляющие символы, но оставляют их в конце.
Сравните:
echo -e "\e[0;31mExample\e[0m foo"
с
echo -e "[0;31mExample[0m foo"
Возможно, вы сможете восстановить управляющую последовательность из того, что осталось, хотя это не является надежным, поскольку используемое вами регулярное выражение может случайно извлечь непреднамеренные последовательности символов и т. д. Но, например:
echo -e "[0;31mExample[0m foo" | sed "s:\[\([0-9]*[;m]\):^[[\1:g"
восстановит цвет строки примера.