我有一些脚本会输出带着颜色的内容,我需要去除其中的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
:https://github.com/chalk/strip-ansi。 - Joshua Pinter