2010-01-09 31 views
11

¿hay alguna forma de convertir la salida de bash a html? por ejemplo, si tuviera una salida coloreada en bash (algo así como htop), ¿cómo puedo convertirlo a etiquetas html ... (algo como esto: <p style="color: red">some text</p>)salida de linux shell a html

+1

¿Cómo serían los resultados de la conversión? No hay una estructura reconocible aquí que pueda convertirse en etiquetas HTML. ¿Qué estás tratando de lograr exactamente? –

+0

Sus datos parecen estar llenos de secuencias de control ANSI. Es eso intencional? –

+2

Relacionado: http://stackoverflow.com/questions/245121/a-library-to-convert-ansi-escapes-terminal-formatting-color-codes-to-html – Tobu

Respuesta

19

Hay ansifilter además, algunas herramientas como highlight producirán html coloreado a partir de texto sin formato, como archivos de origen.

Ambos disponibles here.

+3

Esto es exactamente lo que quiero ... archivo ansifilter -i -H-o archivo.html – linker

9

Sí, debe canalizar el resultado a través de una herramienta como ansi2html.

3

Sin ninguna impresión bonita, lo más simple que siempre se puede hacer es escapar de todo lo que necesita escaparse, y ajustar un shell HTML básico (el siguiente debería ser HTML5 mínimo válido). Por ejemplo, obtenga un control de fastesc: http://raa.ruby-lang.org/project/fastesc/, y envuélvalo en un shell HTML.

Si desea conservar la magia ANSI, entonces usted necesita para convertir que a HTML, tal vez con http://ansi-sys.rubyforge.org/

Y luego hacer algo como esto, dependiendo de sus necesidades:

require 'ansisys' 


def ansi_escape(string) 
    terminal = AnsiSys::Terminal.new 
    terminal.echo(string) 
    terminal.render 
end 

def to_html(string) 
    %Q{ <!DOCTYPE html> 
     <title>Converted to html</title> 
     <pre> 
     #{ansi_escape(string)} 
     </pre> 
    } 
end 
+0

+1 Esta es mi respuesta también ... – linker

+0

Esto probablemente todavía necesite escaparse de HTML. – nes1983

Cuestiones relacionadas