【问题标题】:Replace PATH element with SED of multiple xml file in bash用bash中多个xml文件的SED替换PATH元素
【发布时间】:2021-01-05 07:05:59
【问题描述】:

我已经设法替换了 1 个 xml 文件。但是,我有 10 个从 test1.xml 到 test30.xml,它们最后有不同的路径:

test1.xml
...
<examples>
<example path='/test/test123/st1.txt'/>
<examples>
...
test2.xml
...
<examples>
<example path='/test/test123/te2.txt'/>
<examples>
...

test30.xml
...
<examples>
<example path='/test/test123/removethispart.txt'/>
<examples>
...

到这里:

...
<examples>
<example path='/test/test123/'/>
<examples>
...

以前我用过这个,它可以改变一个文件 sed -i "s#&lt;example path='/test/test123/st1.txt'/&gt;#&lt;example path=/test/test123/&gt;#" test1.xml

但是,我想一次更改多个文件并执行以下脚本,但在cat xml 文件上,它没有显示更改

sed -i "s#&lt;example path='/test/test123/*.txt'/&gt;#&lt;example path='/test/test123/'&gt;#" *.xml

任何帮助将不胜感激。感谢您的宝贵时间!

【问题讨论】:

标签: xml bash unix sed automation


【解决方案1】:

你快到了。试试

sed -i "s#<example path='/test/test123/.*\.txt'/>#<example path='/test/test123/'>#" *.xml

对于正则表达式,匹配任何内容的模式是.*,文字句点需要用反斜杠引用,\.

【讨论】:

    猜你喜欢
    • 2017-09-06
    • 2016-01-20
    • 1970-01-01
    • 1970-01-01
    • 2017-11-08
    • 1970-01-01
    • 1970-01-01
    • 2014-09-08
    • 2023-03-23
    相关资源
    最近更新 更多