Bash: кольорова копія / вставка


12

Як усі, у мене є кілька кольорових виходів у моєму башті. Я хочу зберегти кольоровий синтаксис, наприклад, копіюючи витяг у редактор HTML. Чи є спосіб впоратися з цим?

Дякую.

Відповіді:


17

Якщо говорити про колірному виході деяких утиліт командного рядка , як ls, grep, cmake, git diffі т.д., будь ласка , зверніть увагу, що він не має ніякого відношення до GNU Bash.

У будь-якому випадку, існує кілька інструментів для перетворення вихідних кольорів, забарвлених послідовністю відходу ANSI, в HTML:

  • aha від однойменного пакету
  • ansi2htmlвід HTML :: Модуль FromANSI Perl (не упакований у репортаж Ubuntu, може бути встановлений із CPAN)
  • ansi2html.shвід pixelb (не упаковано, завантаження з git)

Використання всіх них досить просте: вони зчитують послідовність аварійних терміналів з stdinі ставлять HTML в stdout. Але зауважте: більшість утилітів не розфарбовують вихід, якщо він не збирається завершити роботу. Ви повинні замовити їм явно створювати кольоровий вихід. E. g .:

$ 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 ... і так, я знаю, що ОП хотів html, але багато хто з нас спотикаються тут, бажаючи форматування взагалі.
шавлія

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.