【问题标题】:Replace content of matched regexp-address without repeating regex替换匹配的正则表达式地址的内容而不重复正则表达式
【发布时间】:2022-07-08 22:54:59
【问题描述】:

(GNU) sed 中是否有办法对正则表达式地址匹配的确切字符串执行s 替换?

避免重复已经用于选择行的正则表达式的东西?

一个难以阅读的sed 调用示例,其中使用相同的正则表达式来匹配s 命令将运行的行以及确定该行中将替换的内容。

sed -i -e '/verycomplexregexp/s/verycomplexregexp/something/'

【问题讨论】:

    标签: regex sed


    【解决方案1】:

    s 命令中使用empty regexp // 可以避免重复用于选择行的正则表达式:

    sed -i -e '/verycomplexregexp/s//something/'
    

    空的正则表达式// 指的是模式空间中先前匹配的文本。当使用 regexp-address 时,空的 regexp 指向使该行与地址匹配的字符串。

    【讨论】:

      猜你喜欢
      • 2019-10-19
      • 1970-01-01
      • 1970-01-01
      • 2012-05-16
      • 2014-05-17
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多