用 bash 中多个 xml 文件的 SED 替换 PATH 元素
Replace PATH element with SED of multiple xml file in bash
我已经成功替换了 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#<example path='/test/test123/st1.txt'/>#<example path=/test/test123/>#" test1.xml
但是,我想一次更改多个文件并执行以下脚本,但是在 cat
xml 文件上,它没有显示更改
sed -i "s#<example path='/test/test123/*.txt'/>#<example path='/test/test123/'>#" *.xml
如有任何帮助,我们将不胜感激。感谢您的宝贵时间!
你快到了。尝试
sed -i "s#<example path='/test/test123/.*\.txt'/>#<example path='/test/test123/'>#" *.xml
对于正则表达式,匹配任何内容的模式是 .*
并且文字句点需要用反斜杠引用,\.
.
我已经成功替换了 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#<example path='/test/test123/st1.txt'/>#<example path=/test/test123/>#" test1.xml
但是,我想一次更改多个文件并执行以下脚本,但是在 cat
xml 文件上,它没有显示更改
sed -i "s#<example path='/test/test123/*.txt'/>#<example path='/test/test123/'>#" *.xml
如有任何帮助,我们将不胜感激。感谢您的宝贵时间!
你快到了。尝试
sed -i "s#<example path='/test/test123/.*\.txt'/>#<example path='/test/test123/'>#" *.xml
对于正则表达式,匹配任何内容的模式是 .*
并且文字句点需要用反斜杠引用,\.
.