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