不需要的输出字符,例如来自脚本的`^[[032m`

不需要的输出字符,例如来自脚本的`^[[032m`

当我们尝试将输出从生产服务器重定向到本地系统时,存在一些不需要的字符,例如。^[[032m。实际上,这些是重定向时出现的颜色代码。当在服务器上执行相同的脚本而不重定向时,输出的某些部分会以彩色格式显示。

如果我们直接在记事本或任何其他工具中打开此文件,它会显示不同的字符,如下所示。

在此输入图像描述

那么是否有任何可能的解决方案可以跳过它们在重定向之前或之后发生。

答案1

如果您有 GNU sed,您可以使用它来删除流中的颜色转义:

somecmd |sed -Ee 's/\x1b\[[0-9;]+m//g'  > outputfile

sed命令将 ( s///) 替换为转义字符 ( \x1b),后跟一个开括号 ( \[)、任意数量的数字或分号 ( [0-9;]+) 以及后面的m,但不包含任何内容。

相关内容