Últimamente, las herramientas de línea de comandos han tendido a utilizar colores ANSI elegantes en su salida de registro (por ejemplo, NPM y una gran cantidad de herramientas basadas en nodejs, rvm, docker y algunas otras herramientas "modernas").
Esto hace que sea agradable de leer en la pantalla (*), pero no tan agradable cuando desea canalizar la salida a un archivo de registro o a través de un transporte que no maneja bien ANSI, como varias herramientas de ejecución remota y soluciones de monitoreo basadas en la web. Muchas herramientas más maduras al menos tuvieron la decencia de detectar cuando la salida no es un TTY y deshabilitar el color, pero no con esas nuevas CLI "fáciles de usar", lo que me deja tratar de deshacerme de los colores ANSI mediante tuberías. la salida a través de otro proceso más.
Aparecer el resultado s/\x1B\[[0-9]*\w//g
parece hacer el trabajo, pero ¿hay un enfoque más limpio que copiar las expresiones regulares pegadas en todos mis scripts?
(*) al menos hasta que la herramienta intente mostrar errores en rojo oscuro en su terminal de fondo oscuro.
is there a cleaner approach then just copy pasting regular expressions into all of my scripts?
- Guarde su filtro de limpieza en un archivo llamado '/ usr / local / bin / stripttycolor.sh` o algo así? De esa manera, ¿tienes la expresión regular limitada a una sola ubicación?--no-color
bandera. Muchos otros comandos también tienen banderas similares.bower
.Respuestas:
"ansifilter -p" podría serle útil ...
Está en los repositorios de Fedora; -p especifica salida simple:
fuente