sed:参考匹配模式的部分

时间:2017-02-14 14:48:27

标签: unix sed

我尝试在包含类似以下模式的所有行上替换版本号:moduleprop

    <module name="XYZ_Web">
        <moduleprop name="war" value="xyzz-web-2.23.12-SNAPSHOT.war"/>
        <moduleprop name="starting_weight" value="6000"/>
        <moduleprop name="virtualHost" value="default_host"/>
    </module>
    <module name="XYZ_Export_EJB">
        <moduleprop name="jar" value="xyzl-export-ejb-2.23.12-SNAPSHOT.jar"/>
        <moduleprop name="starting_weight" value="1000"/>
    </module>

我的sed命令找到我正在寻找的所有行:

sed 's/<moduleprop name="[j|w]ar" value="xyz[z|l]-[a-z-]*2\.23\.12-SNAPSHOT\.[j|w]ar"\/>/test/g' my-file.xml

有了这个方法,我无法再参考每​​个正则表达式并使用该值。我尝试用\ 1 \ 2来推荐,但我的cygwin抱怨:

sed: -e Ausdruck #1, Zeichen 25: Ungültiger Verweis \1 im rechten Teil (`RHS') des `s'-Befehls

1 个答案:

答案 0 :(得分:2)

要使匹配字符串的某些部分与.main { height: 100%; width: 100%; display: flex; flex-direction: column; } .filter { width: 100%; } .result { width: 100%; } .resultcontent { height: 100%; width: 100%; } .list { height: 100%; width: 100%; overflow: auto; } .listcontent { height: 1000px; width: 2000px; } 等一起引用,您需要捕获它们。在经典\1中,您使用sed开始捕获,\(结束捕获。捕获按\)标记的外观顺序编号。

您可以使用:

\(

如果需要,可以嵌套捕获。