有一个文件test.xml,主要内容如下:
.................................
TIME="2015-08-18T11:30:00.000+08:00:00"
.....................................
<地址><!省会[城市[安徽/合肥]]></地址>
<类型><环境="PM2.5>
<大颗粒>100</大颗粒>
<小颗粒>50</小颗粒>
</类型>
.......................
<地址><!省会[城市[江苏/淮安]]></地址>
........(文件结构和上面相同)
想把这个文件输出成下面格式:
2015-08-18T11:30 PM2.5 安徽/合肥 100 50
2015-08-18T11:30 PM2.5 江苏/淮安 300 80
.........
勉强给搞了一个:
#!/bin/bash
TIME=`grep -m1 'TIME' test.xml | sed -r -n 's/TIME=.([^:]*:[^:]*):.*$/\1/p'`
awk -v RS='</类型>' -v t=$TIME '{print t" " gensub(/^.*城市\[([^]]*)\].*(PM2.5)[^0-9]*([0-9]+)[^0-9]*([0-9]+).*$/,"\\1 \\2 \\3 \\4","g")}' test.xml
有邮箱吗?想继续讨论下这个思路