删除具有特殊字符的SED中的特定字符范围



我想整理我的回应是:

serverid响应:142 [90m [39mtestruntime

我试图以以下方式使其格式化

服务器响应:142 TestRuntime

我相信[90m和[39是另一个CLI工具中的某些控制字符,因为当我不添加时,它们是空格时出现的: tr -dc '[:print:]在回应之前。

我已经构建了以下SED命令,但它在测试中删除了一个额外的M:

tr -dc '[:print:]' | sed 's/[<[90m[39m>]//g'

我将如何制作包括特殊字符的确切匹配命令,但只有整个序列匹配?

预先感谢

[<[90m[39m>]中的外部方括号形式a bracket表达式与其中定义的单个char匹配。当您使用<>单词边界时,只需删除括号就无法解决问题,因为必须在任何上下文中删除[90m[39m

使用

sed 's/[90m[39m//g'

这将删除文件中的任何数量的[90m[39m

最新更新