【问题标题】:How to delete specific patterns with sed bash如何使用 sed bash 删除特定模式
【发布时间】:2017-01-04 18:18:45
【问题描述】:

我有一个包含以下内容的 bash 脚本:

#!/bin/bash
##############################################################
# LOCAL COLORS                                               #
##############################################################
export nc="\e[0m"
export underline="\e[4m"
export bold="\e[1m"
export green="\e[1;32m"
export red="\e[1;31m"
export yellow="\e[1;33m"
export blue="\e[1;34m"
export cyan="\e[1;36m"

当我打开日志时:

$ echo "${red}############${nc}" | tee log

变量中的字符出现了,所以我尝试使用 sed 删除它,如下所示:

sed -i 's|\e[1;31m||g' log

但我总是有以下错误:

sed: -e expression #1, char 10: unterminated `s' command

感谢您在这方面的帮助 谢谢

【问题讨论】:

    标签: bash ubuntu sed


    【解决方案1】:

    sed 中,您可能需要转义\e[

    sed -i 's|\\e\[1;31m||g'
    

    否则他们会被误解并打破模式。

    【讨论】:

      【解决方案2】:

      我建议使用:

      sed -i 's|\x1b\[1;31m||g' log
      

      【讨论】:

        猜你喜欢
        • 2019-11-05
        • 2017-10-13
        • 2017-09-18
        • 2018-08-25
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2013-12-01
        相关资源
        最近更新 更多