Atualização: eu adicionei um perl
método, usando o módulo HTML :: FromANSI do CPAN . Para instalá-lo, basta extraí-lo para um diretório e executar como root: perl -MCPAN -e 'install HTML::FromANSI'
desse diretório. O recurso específico para atender à sua solicitação é um script chamado ansi2html
. Curiosamente, ele mostra a mesma perda de cor após a sobreposição k
nos nomes dos arquivos, assim como o script elisp-shell ... Aqui está um exemplo de uso:
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" |
ansi2html >/tmp/example.html
firefox /tmp/example.html
Aqui está a saída html. como visto no Firefox:
Aqui está um método usando um script emacs elisp-shell ... por exemplo, chamado htmlize ... O Emacs não precisa estar em execução.
Eu o testei originalmente em um fundo preto, mas notei que, por algum motivo, um fundo branco não funciona bem com um dos códigos de escape introduzidos \e[K
, que parecem ser ERASE_LINE (apague a linha atual de saída do terminal) . Adicionei uma linha para remover este código de escape. Agora funciona para um fundo branco.
Aqui está um exemplo de saída destacada em cores de ls
ser canalizada para grep
realçar mais cores.
ls -l --color=always /bin/*k* |
grep --color=always "k\|x\|2010" >/tmp/example
htmlize /tmp/example
firefox /tmp/example.html
esse é o elsip-shell
script.
#!/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"))
Aqui está um exemplo da saída html, no Firefox ... Se eu tiver tempo, analisarei mais detalhadamente a questão dos códigos ANSI sobrepostos. onde o vermelho se k
sobrepõe aos nomes de arquivos verdes, mas isso só ocorre por causa de um regex de teste escolhido apressadamente para grep ... (talvez isso seja algo que \e[K
influencia ...