【问题标题】:Remove ANSI codes from string with sed [duplicate]使用 sed 从字符串中删除 ANSI 代码 [重复]
【发布时间】:2020-01-04 13:14:36
【问题描述】:

给定以下字符串:

"foo\e[38;5;1mbar\e[0mbaz"

如何在不知道这些字符串中数字的确切值的情况下使用 sed 删除 \e[38;5;19m\e[0m? 预期输出:

foobarbaz

我有以下 sed 行,它与第一个字符串匹配:

# regex: \\e\[[^/]*m
sed -E 's/\\e\[[^/]*m//g'

这将返回sed: 1: unbalanced brackets ([])
如何摆脱数字未知的两个字符串?

【问题讨论】:

    标签: bash sed


    【解决方案1】:

    你们很亲密。这应该可以完成工作:

    $ echo "foo\e[38;5;1mbar\e[0mbaz" | sed -E 's/\\e[^\\]*m//g'
    # foobarbaz
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2016-07-21
      • 1970-01-01
      • 2012-04-09
      • 2017-05-28
      • 1970-01-01
      • 2015-05-08
      • 1970-01-01
      相关资源
      最近更新 更多