У мене є якийсь сценарій, який дає результат з кольорами, і мені потрібно видалити 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 .