繁体   English   中英

预期:从输出和日志文件中删除颜色代码

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM