代码部分
config.xml文件
<?xml version="1.0" encoding="utf-8"?>
<AllFlags>
<flag>
<id>AE0530A78C913635A</id>
<name>JOK</name>
<phone>1325314002</phone>
<wechat>dh1562</wechat>
<time>2018-09-02</time>
<status>1</status>
</flag>
<flag>
<id>01053609F780A5FF6</id>
<name>TOM</name>
<phone>1803270891</phone>
<wechat>ch1234</wechat>
<time>2018-09-02</time>
<status>0</status>
</flag>
</AllFlags>
read.sh文件
#!/bin/sh
XML_CONFIG=./config.xml
endtxt="</AllFlags>"
#取第几段内容的参数
m=1
#定义一个死循环
while :
do
#取xml文件第m段的内容
text=`awk -v RS="</flag>" "NR==$m{print}" $XML_CONFIG`
#将该内容重定向到临时文件,方便后面的取值
echo $text >temp.txt
#如果本次循环的域内容不包含文件尾,则解析该内容
if [ `grep -c "$endtxt" temp.txt` -eq '0' ];
then
name=`awk -v RS="</*name>" 'NR==2{print}' temp.txt`
wechat=`awk -v RS="</*wechat>" 'NR==2{print}' temp.txt`
echo "$name=\"$wechat\""
echo "$name=\"$wechat\"" >>application.properties
else
echo "文件读取结束"
#退出死循环
break
fi
m=`expr $m + 1`
done
测试结果