У меня есть сценарий, который производит вывод с цветами, и мне нужно удалить коды ANSI.
#!/bin/bash
exec > >(tee log) # redirect the output to a file but keep it on stdout
exec 2>&1
./somescript
Вывод (в файле журнала):
java (pid 12321) is running...@[60G[@[0;32m OK @[0;39m]
Я не знал, как поместить здесь символ ESC, поэтому я поставил @
его на место.
Я изменил сценарий на:
#!/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"
Но теперь это дает мне (в файле журнала):
java (pid 12321) is running...@[60G[ OK ]
Как я могу также удалить это @[60G
?
Может быть, есть способ полностью отключить раскраску для всего сценария?
strip-ansi
: github.com/chalk/strip-ansi .