Оновлення: я додав perl
метод, використовуючи модуль HTML :: FromANSI від CPAN .. Щоб встановити його, просто витягніть його до каталогу та запустіть як root: perl -MCPAN -e 'install HTML::FromANSI'
з цього каталогу. Особливістю для вашого запиту є сценарій, який називається ansi2html
. Цікаво, що він показує таку ж втрату кольору після накладених k
файлів, як і сценарій elisp-shell ... Ось приклад використання:
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" |
ansi2html >/tmp/example.html
firefox /tmp/example.html
Ось вихід HTML. як видно у Firefox:
Ось метод, що використовує сценарій elisp-shell emacs emacs ... наприклад, під назвою htmlize ... Emacs не потрібно запускати.
Я спочатку перевіряв його на чорному тлі, але помітив, що з якоїсь причини білий фон не дуже добре поєднується з одним із введених кодів Escape \e[K
, який, здається, є ERASE_LINE (Стерти поточний рядок вихідного терміналу) . Я додав рядок для видалення цього коду втечі. Зараз він працює для білого тла.
Ось приклад виділеного кольором виводу від ls
трубопроводу до grep
подальшого виділення кольорів.
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" >/tmp/example
htmlize /tmp/example
firefox /tmp/example.html
це elsip-shell
сценарій.
#!/bin/sh
":"; exec /usr/bin/emacs -Q --script "$0" -- "$@" # -*-emacs-lisp-*-
(require 'ansi-color) (require 'htmlize)
(find-file (setq path-in (cadr argv)))
(ansi-color-apply-on-region (point-min) (point-max))
(switch-to-buffer (buffer-name (htmlize-buffer)))
(write-file (concat path-in ".html"))
Ось зразок виводу html у Firefox ... Якщо у мене з’явиться час, я детальніше перегляну проблему з накладеними кодами ANSI. де червоний k
перекриває зелені назви файлів, але це є лише через поспішно обраний тестовий регекс для grep ... (можливо, це щось \e[K
впливає ...