如何替换多个 XML 文件中的多个字段?

Axe*_*ier 5 command-line xml text-processing

<filename>我有大约 4000 个 XML 文件,我需要替换和字段的值<path>。我需要动态替换这些字段。例如images0001.xml应该images0001在两个字段内,images0002.xml应该在images0002两个字段内,等等。

我已经使用此命令按顺序重命名文件:

rename 's/.+/our $i; sprintf("images%04d.jpg", 1+$i++)/e' *
Run Code Online (Sandbox Code Playgroud)

我还使用此命令删除了.jpg我试图更改的两个字段中的扩展名:

sed -i 's/.jpg//g' Annotations/*
Run Code Online (Sandbox Code Playgroud)

以下是 XML 文件内容的当前状态:

rename 's/.+/our $i; sprintf("images%04d.jpg", 1+$i++)/e' *
Run Code Online (Sandbox Code Playgroud)

这是我需要更改文件的方式:

sed -i 's/.jpg//g' Annotations/*
Run Code Online (Sandbox Code Playgroud)

我正在寻找一种在命令行中执行此操作的方法,但搜索了一段时间后我无法找到解决方案!

任何帮助将不胜感激。提前致谢!

Raf*_*ffa 5

您需要一个 XML 工具(xmlstarlet)...所以:

sudo snap install xmlstarlet
Run Code Online (Sandbox Code Playgroud)

在一个循环中......所以:

sudo snap install xmlstarlet
Run Code Online (Sandbox Code Playgroud)