代码之家  ›  专栏  ›  技术社区  ›  tkja

析取匹配的sed顺序

  •  0
  • tkja  · 技术社区  · 10 年前

    给定输入文件text.txt

    First token second pattern, second pattern.
    

    并运行:

    sed -r -i "s/pattern|second pattern/REPLACE/g" input.txt
    

    我得到了新的input.txt:

    First token REPLACE, REPLACE.
    

    看起来像是 second pattern 首先应用于此处以匹配input.txt的内容。

    sed中的析取与sed中输入文本匹配的顺序是什么?

    有没有一种方法可以指定应用匹配的析取的顺序,与-i内联命令一起使用?

    1 回复  |  直到 10 年前
        1
  •  2
  •   qwwqwwq    10 年前

    不确定sed-regex引擎在交替中做什么( | )运算符,但获得所需结果的一种方法可能是在sed中分成两个regex语句:

    sed -r -i "s/pattern/REPLACE/g;s/second pattern/REPLACE/g"
    

    这将使您完全明确地控制应用替换的顺序,同时所有替换仍在一次中发生 sed 适用于就地编辑的调用( -i ).

    推荐文章