[英]Expect: Remove color codes from output and log file
我正在运行一个期望脚本,该脚本正在远程计算机上调用多个脚本。 这些shell脚本返回颜色输出(主要是红色和绿色)。 问题是,那些颜色代码将其放入log_file和STDOUT中,我不希望这样做。 我无法修改远程脚本。
我尝试了sed ,在这里我通过sed传递了期望值的输出,从而去除了颜色代码。 问题是,期望脚本由Webmin“自定义命令”模块运行,该模块的管道输出存在问题。 我还尝试使用Expect脚本中的sed管道调用远程脚本,但这会引起其他问题。
有没有一种方法可以直接使用内置的东西从STDOUT和log_file中删除颜色代码?
颜色代码以CSI
代码( ESC
+ [
)]开头,后跟可以用数字分隔的数字;
。 以下perl命令可用于删除这些序列:
perl -pe 's/\033\[[\d;]*m//g'
# examples
echo $'\033''[3;31mhi'$'\033''[0m'
echo $'\033''[3;31mhi'$'\033''[0m' | perl -pe 's/\033\[[\d;]*m//g'
编辑: \\033
或\\e
或\\x1b
其他选项可能是导出TERM变量,例如:
export TERM=xterm-old
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.