通过shell解析xml文件

  1. 背景
    有如下xml文件,需要通过shell得到每一个filename中的值
    aa.xml
  2. 实现
<?xml version="1.0" encoding="UTF-8"?>
<transmit-content>
<filename>aaa.txt</filename>
<filesize>25684256</filesize>

<filename>bbb.txt</filename>
<filesize>25684256</filesize>

<filename>ccc.txt</filename>
<filesize>25684256</filesize>

<filename>ddd.txt</filename>
<filesize>25684256</filesize>

<filename>eee.txt</filename>
<filesize>25684256</filesize>

<filename>fff.txt</filename>
<filesize>25684256</filesize>
</transmit-context>

发现了一个简单的方法,可以通过awk来实现

for txt_file in `cat /home/test/aa.txt | awk -F '>' '{print $2}'`
 do
  echo $txt_file
 done

此时输出的就是每一个标签的值
3. awk
关于awk的简单用法,例如:

a=value1,value2,value3,value4

如果想得到第二列value2

#','表示以,作为分隔符来读取a,$2表示以,分割厚的第二段,可以以$NF表示最后一个,即value4
echo $a | awk -F ',' '{print $2}'

版权声明:本文为weixin_43192721原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接和本声明。