【问题标题】:Replace regex-matched word with modified version of the word用单词的修改版本替换正则表达式匹配的单词
【发布时间】:2019-05-11 21:34:14
【问题描述】:

我正在尝试用正则表达式替换我找到的 10 位数字,并在前面加上“abc”。例如,如果匹配的数字是 0123456789,我想用 abc0123456789 替换那个词。

四处搜索,我发现 sed 对于替换文件中的单词很有用 -

sed -i '' -e 's/[0-9]\{10\}/new-word/g' *.csv

此命令成功地将我的 10 位数字实例替换为“new_word”。如何将其替换为“abc + [匹配的单词]” ?

【问题讨论】:

    标签: regex sed replace pattern-matching match


    【解决方案1】:

    使用括号创建“匹配的捕获组”。要引用第一组,请使用\1,依此类推:

    s/\([0-9]\{10\}\)/abc\1/g
    

    或者使用&,代表“整个匹配部分”:

    s/[0-9]\{10\}/abc&/g
    

    【讨论】:

      猜你喜欢
      • 2015-03-06
      • 2020-02-13
      • 1970-01-01
      • 2022-12-10
      • 1970-01-01
      • 2021-09-21
      • 1970-01-01
      • 2020-01-06
      • 1970-01-01
      相关资源
      最近更新 更多