Как и у всех, у меня есть несколько цветных выводов в моем bash. Я хочу сохранить раскрашенный синтаксис, например, при копировании выдержки в редактор HTML. Есть ли способ справиться с этим?
Благодарю.
Если говорить о цветовом выходе некоторых утилит командной строки , как ls
, grep
, cmake
, git diff
и т.д., пожалуйста , обратите внимание, что он не имеет никакого отношения к GNU Bash.
В любом случае, есть несколько инструментов для преобразования вывода, раскрашенного с помощью escape-последовательностей ANSI, в HTML:
aha
из одноименной упаковкиansi2html
из HTML :: PerANS модуль FromANSI (не упакован в репозиторий Ubuntu, может быть установлен из CPAN)ansi2html.sh
по pixelb (не упаковано, скачать с git)Использовать их все довольно просто: они читают escape-последовательности терминала stdin
и помещают HTML в stdout
. Но обратите внимание: большинство утилит не окрашивают вывод, если он не идет к терминалу. Вы должны заказать их для получения цветного вывода в явном виде. Е. г .:
$ ls --color=always | aha | xsel -i -b
xsel -i -b
здесь будет скопировать HTML в буфер обмена.
aha
) работало прекрасно; Большое спасибо!git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html
... и да, я знаю, что OP хотел HTML, но многие из нас будут спотыкаться, желая форматирование вообще.Для этого вам нужно использовать библиотеки javascript, вы не можете напрямую копировать / вставлять и сохранять цвета такими, какие они есть. Некоторые из популярных библиотек для этого:
Источник: аналогичный вопрос по SO
источник