Actualización: agregué un perl
método, usando el módulo HTML :: FromANSI de CPAN .. Para instalarlo, simplemente extráigalo a un directorio y ejecútelo como root: perl -MCPAN -e 'install HTML::FromANSI'
desde ese directorio. La característica particular para satisfacer su solicitud es un script llamado ansi2html
. Curiosamente, muestra la misma pérdida de color después de la superposición k
en los nombres de archivo, al igual que el script de elisp-shell ... Aquí hay un ejemplo de uso:
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" |
ansi2html >/tmp/example.html
firefox /tmp/example.html
Aquí está la salida html. como se ve en Firefox:
Aquí hay un método que usa un script de emacs elisp-shell ... por ejemplo, llamado htmlize ... Emacs no necesita estar ejecutándose.
Originalmente lo probé sobre un fondo negro, pero noté que, por alguna razón, un fondo blanco no funciona bien con uno de los códigos de escape introducidos \e[K
, que parece ser ERASE_LINE (borrar la línea actual de salida del terminal) . He agregado una línea para eliminar este código de escape. Ahora funciona para un fondo blanco.
Aquí hay un ejemplo de salida resaltada de color de ls
ser canalizada grep
para resaltar más el color.
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" >/tmp/example
htmlize /tmp/example
firefox /tmp/example.html
Este es el elsip-shell
guión.
#!/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"))
Aquí hay una muestra de la salida html, en Firefox ... Si tengo tiempo, investigaré más sobre el tema de los códigos ANSI superpuestos. donde los k
s rojos se superponen a los nombres de archivo verdes, pero eso solo está ahí debido a una expresión regular de prueba elegida apresuradamente para grep ... (tal vez eso sea algo que \e[K
influya ...