xml - 根据xml标签内容重命名文件

标签 xml regex linux macos file

我有大量的 XML 文件需要重命名。它们是 .plist 文件。

每个文件中都有一些标签,如下所示:

<key>Name</key>
<string>Steve Allen</string>
<key>Place</key>
<string>London</string>

目前,所有文件都以长随机数命名,如 659238592496052.record 但我需要它们根据文件中的名称命名,如 SteveAllen.record (没有任何空格)。

我该怎么做?

最佳答案

for file in *.record
do
  nameline=$(grep -A 1 '<key>Name</key>' "$file" | tail -n +2) # Get line after Name key
  name=${nameline/<string>/} # Remove initial <string>
  name=${name/<\/string>/} # Remove trailing </string>
  name=${name// /} # Remove all spaces
  mv "$file" "$name".record
done

关于xml - 根据xml标签内容重命名文件,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/15395131/

相关文章:

java - 脚轮性能问题

Ruby - 数组中至少有一项也符合要求

javascript - 用正则表达式替换单词

javascript - 删除所有内联 JavaScript - Jquery

linux - 查找某个目录下所有正在运行的脚本

linux - 分区上保留 block 所需的空间

c - 如何判断函数是否在 vfork() 的进程中被调用?

java - ImageButton + 对话框问题

安卓 - java.lang.UnsupportedOperationException : Can't convert to dimension: type=0x12

php - 将 while 循环生成的 xml 分配给变量