J'ai un script qui produit une sortie avec des couleurs et je dois supprimer les codes ANSI.
#!/bin/bash
exec > >(tee log) # redirect the output to a file but keep it on stdout
exec 2>&1
./somescript
La sortie est (dans le fichier journal):
java (pid 12321) is running...@[60G[@[0;32m OK @[0;39m]
Je ne savais pas comment mettre le caractère ESC ici, alors j'ai mis @
à sa place.
J'ai changé le script en:
#!/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"
Mais maintenant, cela me donne (dans le fichier journal):
java (pid 12321) is running...@[60G[ OK ]
Comment puis-je également supprimer ce ' @[60G
?
Peut-être existe-t-il un moyen de désactiver complètement la coloration pour tout le script?
strip-ansi
: github.com/chalk/strip-ansi .