2011-06-10 12 views
5

Algunos programas crean hermosas barras de progreso y cosas usando secuencias de escape ANSI. Eso es bueno.Eliminar códigos ANSI cuando se almacena la salida del script

Lo que no es bueno es que si pongo el resultado de ese tipo de programa en un archivo y luego trato de verlo, está lleno de extrañas secuencias de escape.

¿Hay alguna manera de eliminar todos los códigos ANSI durante el inicio de sesión?

lo general registrar la salida de un guión de esta manera:

./script >> /tmp/output.log 
+0

no puede simplemente capturar la salida de los programas para separar los archivos de registro. Dicho de otra manera, ¿por qué * tienes * que usar script? ¡Buena suerte! – shellter

+0

El script no es un script de registro, el script/programa es el que usa las secuencias ANSI. Tiene salida normal también y es esa salida normal que quiero almacenar. Las ansi-secuencias deben ser eliminadas. – Martin

+0

Esto se debe mover a unix.stackexchange.com. –

Respuesta

7

Probar:

$ TERM=dumb ./script >> /tmp/output.log 

Si eso no funciona, es porque los códigos ANSI han sido modificable en el script, por lo que no hay una manera fácil de eliminarlos. Si lo hace, es porque está haciendo lo correcto, delegando cosas como salida bonita a libncurses o similar, de modo que cuando cambie la variable TERM, la biblioteca ya no envíe esos códigos.

Cuestiones relacionadas