使用 shell 脚本读取 属性 文件并插入 xml 标签
Read property file and Insert xml tag using shell script
我有一个 属性 文件如下,
Name=sample
TagName=Test1
TagType=P
Name=sample1
TagName=Test2
TagType=Y
我有一个 xml 文件如下,
<?xml version="1.0" encoding="UTF-8"?>
<root>
</root>
需要追加如下,
<?xml version="1.0" encoding="UTF-8"?>
<root>
<sub>
<TagName>Test1</TagName>
<TagType>P</TagType>
</sub>
<sub>
<TagName>Test2</TagName>
<TagType>Y</TagType>
</sub>
</root>
任何人都可以帮助我在 shell 脚本中使用 sed 或 awk 命令插入 xml 文件 ...
提前致谢..
与 bash
和 xmlstarlet
。我删除了 xml 文件中 <?xml
之前的 space。
#!/bin/bash
file="file.xml"
prop="property.txt"
while IFS="=" read -r key value; do
[[ "$key" == "Name" ]] && xmlstarlet edit -L --subnode '//root' --type elem -n "sub" "$file"
[[ "$key" == "TagName" ]] && xmlstarlet edit -L --subnode '//root/sub[last()]' --type elem -n "TagName" --value "$value" "$file"
[[ "$key" == "TagType" ]] && xmlstarlet edit -L --subnode '//root/sub[last()]' --type elem -n "TagType" --value "$value" "$file"
done < "$prop"
输出到file.xml:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<sub>
<TagName>Test1</TagName>
<TagType>P</TagType>
</sub>
<sub>
<TagName>Test2</TagName>
<TagType>Y</TagType>
</sub>
</root>
请参阅:xmlstarlet edit
快速语法概述。
我有一个 属性 文件如下,
Name=sample
TagName=Test1
TagType=P
Name=sample1
TagName=Test2
TagType=Y
我有一个 xml 文件如下,
<?xml version="1.0" encoding="UTF-8"?>
<root>
</root>
需要追加如下,
<?xml version="1.0" encoding="UTF-8"?>
<root>
<sub>
<TagName>Test1</TagName>
<TagType>P</TagType>
</sub>
<sub>
<TagName>Test2</TagName>
<TagType>Y</TagType>
</sub>
</root>
任何人都可以帮助我在 shell 脚本中使用 sed 或 awk 命令插入 xml 文件 ...
提前致谢..
与 bash
和 xmlstarlet
。我删除了 xml 文件中 <?xml
之前的 space。
#!/bin/bash
file="file.xml"
prop="property.txt"
while IFS="=" read -r key value; do
[[ "$key" == "Name" ]] && xmlstarlet edit -L --subnode '//root' --type elem -n "sub" "$file"
[[ "$key" == "TagName" ]] && xmlstarlet edit -L --subnode '//root/sub[last()]' --type elem -n "TagName" --value "$value" "$file"
[[ "$key" == "TagType" ]] && xmlstarlet edit -L --subnode '//root/sub[last()]' --type elem -n "TagType" --value "$value" "$file"
done < "$prop"
输出到file.xml:
<?xml version="1.0" encoding="UTF-8"?>
<root>
<sub>
<TagName>Test1</TagName>
<TagType>P</TagType>
</sub>
<sub>
<TagName>Test2</TagName>
<TagType>Y</TagType>
</sub>
</root>
请参阅:xmlstarlet edit
快速语法概述。