Como todos, tengo algunos resultados coloreados en mi bash. Quiero mantener la sintaxis coloreada cuando copio un extracto a un editor HTML, por ejemplo. ¿Hay alguna manera de manejar esto?
Gracias.
Si usted está hablando acerca de la salida coloreada de algunas utilidades de línea de comandos como ls
, grep
, cmake
, git diff
, etc, por favor nota, que no tiene ninguna relación a GNU Bash.
De todos modos, hay varias herramientas para convertir la salida coloreada con secuencias de escape ANSI a HTML:
aha
del paquete del mismo nombreansi2html
from HTML :: FromANSI Perl module (no incluido en el repositorio de Ubuntu, se puede instalar desde CPAN)ansi2html.sh
por pixelb (no empaquetado, descarga desde git)El uso de todos ellos es bastante simple: leen secuencias de escape de terminal stdin
y ponen HTML stdout
. Pero tenga en cuenta: la mayoría de las utilidades no colorean la salida si no va a la terminal. Debe ordenarlos para que produzcan resultados coloreados explícitamente. P.ej.:
$ ls --color=always | aha | xsel -i -b
xsel -i -b
aquí copiará HTML al portapapeles.
aha
) funcionó maravillosamente; ¡muchas gracias!git -c color.ui=always diff | aha > /tmp/diff.html && firefox /tmp/diff.html
... y sí, sé que el OP quería el html, pero muchos de nosotros tropezaríamos aquí queriendo El formateo en general.Necesita usar bibliotecas javascript para eso, no puede copiar / pegar directamente y mantener los colores como están. Algunas de las bibliotecas populares para esto son:
Fuente: Pregunta similar sobre SO
fuente