Sam*_*aby 23 sed regular-expression
可能的重复:
从脚本输出中删除控制字符(包括控制台代码/颜色)
我正在编写一个脚本来与我正在编写的程序一起工作。我正在尝试做的是使用另一个脚本评估多个客户端的完成程度。我的脚本几乎完全符合我的要求,但是有一些颜色常量插入到我的 XML 输出中,当我稍后将 XML 解析为 PHP 时,这些常量会搞砸。长话短说,我有一个我正在使用的 sed 表达式,它删除了颜色常量的第一部分,但它无法删除看起来像 ^[(B - 因此我的问题。
这是我正在使用的 sed 序列:
sed -r 's/\x1B\[([0-9]{1,3}((;[0-9]{1,3})*)?)?[m|K]//g'
Run Code Online (Sandbox Code Playgroud)
我想知道是否有一个单独的 sed 序列我可以在之后运行以删除尾随序列。我试过使用
sed 's/\^\[\\(B//'
Run Code Online (Sandbox Code Playgroud)
但它似乎没有删除任何东西。我不一定需要答案,如果有人对 sed 和颜色代码有很好的指导,那也会非常有帮助。我用谷歌搜索了一下,但我找到的答案似乎只是去掉了颜色的开头部分。
谢谢你的帮助。
Den*_*ker 38
ANSI 转义码以ESC或 字符\033颜色代码(它们的子集)开头,\033[Xm其中 X 是分号分隔的数字列表,可能为空(这意味着重置)。m 是文字 m。
由于我自己一直忘记这些代码,因此我在https://github.com/seveas/hacks/blob/master/ansi.py上“记录”了它们。
至于 sed 表达:我会去 s/\x1B\[[0-9;]*[JKmsu]//g