Ich habe ein Skript, das eine Ausgabe mit Farben erzeugt, und ich muss die ANSI-Codes entfernen.
#!/bin/bash
exec > >(tee log) # redirect the output to a file but keep it on stdout
exec 2>&1
./somescript
Die Ausgabe ist (in Protokolldatei):
java (pid 12321) is running...@[60G[@[0;32m OK @[0;39m]
Ich wusste nicht, wie ich den ESC-Charakter hier einfügen sollte, also habe ich ihn @
an seine Stelle gesetzt.
Ich habe das Skript geändert 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"
Aber jetzt gibt es mir (in Protokolldatei):
java (pid 12321) is running...@[60G[ OK ]
Wie kann ich das auch entfernen @[60G
?
Vielleicht gibt es eine Möglichkeit, die Farbgebung für das gesamte Skript vollständig zu deaktivieren?
strip-ansi
: github.com/chalk/strip-ansi .