我想迭代许多 xml 文件以修复过时的配置条目,方法是获取所有匹配项,然后在第二步用更新的字符串(在本例中为多行脚本)替换每个条目。我知道如何查询/选择和打印元素的值,例如使用xmlstarlet
XPath
xmlstarlet sel -t -v '//hudson.tasks.Shell/command' $xml
或者如何使用列出所有 XPath
xmlstarlet el -a $xml
有没有办法输出有效的列表XPath每次匹配的表达式稍后都会使用此 XPath 字符串来更新第二步中的值?例如
maven2-moduleset/postbuilders/hudson.tasks.Shell[1]/command
maven2-moduleset/postbuilders/hudson.tasks.Shell[2]/command
我现在找到的唯一解决方案是从输出中计算路径el
,然后通过索引循环它们(使用 bash)。