У меня есть сценарий, который производит вывод с цветами, и мне нужно удалить коды 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 [email protected][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 [email protected][60G[  OK  ]
  Как я могу также удалить это ' @[60G?
Может быть, есть способ полностью отключить раскраску для всего сценария?