gpt4 book ai didi

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

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:06:39 26 4
gpt4 key购买 nike

我正在运行一个 expect 脚本,该脚本在远程机器上调用多个脚本。这些 shell 脚本返回颜色输出(主要是红色和绿色)。问题是,那些颜色代码进入了我不想要的 log_file 和 STDOUT。我无法修改远程脚本。

我试过了 sed ,在这里我将 expect 的输出通过 sed 进行管道传输,从而删除了颜色代码。问题是,expect 脚本是由 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

关于linux - 期望:从输出和日志文件中删除颜色代码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/45430136/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com