Tengo un script que produce resultados con colores y necesito eliminar los códigos ANSI.
#!/bin/bash
exec > >(tee log) # redirect the output to a file but keep it on stdout
exec 2>&1
./somescript
El resultado es (en el archivo de registro):
java (pid 12321) is running...@[60G[@[0;32m OK @[0;39m]
No sabía cómo poner el personaje ESC aquí, así que puse @
en su lugar.
Cambié el guión a:
#!/bin/bash
exec > >(tee log) # redirect the output to a file but keep it on stdout
exec 2>&1
./somescript | sed -r "s/\x1B\[([0-9]{1,2}(;[0-9]{1,2})?)?[m|K]//g"
Pero ahora me da (en el archivo de registro):
java (pid 12321) is running...@[60G[ OK ]
¿Cómo puedo eliminar esto también @[60G
?
¿Tal vez hay una manera de deshabilitar completamente el color para todo el script?
strip-ansi
: github.com/chalk/strip-ansi .