- 背景
有如下xml文件,需要通过shell得到每一个filename中的值
aa.xml - 实现
<?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}'