Ho alcuni script che producono output con colori e ho bisogno di rimuovere i codici ANSI.
#!/bin/bash
exec > >(tee log) # redirect the output to a file but keep it on stdout
exec 2>&1
./somescript
L'output è (nel file di registro):
java (pid 12321) is running...@[60G[@[0;32m OK @[0;39m]
Non sapevo come mettere il personaggio ESC qui, quindi ho messo @
al suo posto.
Ho cambiato lo script in:
#!/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"
Ma ora mi dà (nel file di registro):
java (pid 12321) is running...@[60G[ OK ]
Come posso rimuovere anche questo " @[60G
?
Forse c'è un modo per disabilitare completamente la colorazione per l'intero script?
strip-ansi
: github.com/chalk/strip-ansi .