【问题标题】:SED how to replace Line with RegexSED 如何用正则表达式替换 Line
【发布时间】:2021-01-01 03:38:13
【问题描述】:

快速提问

我有这行:

regexp: \[apm,(.*)\]apm-(.*)\.pivotal

我也想成为那样:

regexp: \[apm,(.*)\]app-metrics(.*)\.pivotal

我正在使用但它不起作用的 sed 命令是:

sed -i -E 's/regexp: \\[apm,(.\*)\\\]apm-(.\*)\\.pivotal/regexp: \\[apm,(.\*)\\\]app-metrics(.\*)\\.pivotal/g' FILE_THAT_CONTAINS_THE_LINE

【问题讨论】:

  • 你应该edit你的问题并解释在这种情况下“它不工作”是什么意思。显示错误的输出或错误消息。
  • 这不是“怀疑”,而是“疑问”。 “怀疑”意味着你不相信某事。在一些将英语作为第二语言学习的国家,这是一个相当普遍的误解。

标签: linux bash vim sed


【解决方案1】:

尽量简化

sed '/regexp:.*apm.*apm-.*pivotal/s/apm-/&metrics/' FILE...

【讨论】:

  • 我做了一些不同的事情,交换分隔符sed -r 's|\]apm|&-metrics-|g' file
【解决方案2】:
sed -i -E 's/regexp: \\\[apm,\(\.\*\)\\\]apm-\(.\*\)\\\.pivotal/regexp: \\[apm,(.*)\\]app-metrics(.*)\\.pivotal/' file.txt

你缺少一些转义

【讨论】:

    猜你喜欢
    • 2021-12-31
    • 2018-08-22
    • 2013-08-25
    • 1970-01-01
    • 2012-01-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多