Bash: цветная копия / паста


12

Как и у всех, у меня есть несколько цветных выводов в моем bash. Я хочу сохранить раскрашенный синтаксис, например, при копировании выдержки в редактор HTML. Есть ли способ справиться с этим?

Благодарю.

Ответы:


17

Если говорить о цветовом выходе некоторых утилит командной строки , как 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) работало прекрасно; Большое спасибо!
ShreevatsaR

2
ага - гениально! Это почти идеально подходит для меня. Чтобы иметь возможность копировать отформатированный текст, я адаптировался для маршрутизации в tmp, открытия в браузере, а затем просто скопировал / вставил, как для других сайтов: git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html ... и да, я знаю, что OP хотел HTML, но многие из нас будут спотыкаться, желая форматирование вообще.
мудрец

Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.