Файл отображения с цветами ANSI

Вы захотите поговорить с Джоном.

http://www.openwall.com/john/

Может использоваться вместе с гидрой.

11
14.02.2016, 15:27
2 ответа

Я искал решение именно этого вопроса 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
19
27.01.2020, 19:59

Если вы не видите цвет от кошки, возможно, управляющие символы повреждены.

Некоторые инструменты удаляют управляющие символы, но оставляют их в конце.

Сравните:

 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"

восстановит цвет строки примера.

1
27.01.2020, 19:59

Теги

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