我有一堆XML文件(file1,file2 .... file30),每个文件中都有几条记录。每条记录都以< -Place>开头。标记并以< - / Place>结尾标签。假设我想找到包含元素1122的任何记录,并以这种格式返回整个记录:< -Place>开放与开放之间的一切关闭标记< - / PLace>。我怎样才能做到这一点?这是样本输入和预期输出
输入:
文件1:
<Place> <category> 1122 </category> </Place> <Place> <category> 1125 </category </Place> <Place> <category> 1122 </category </Place>
文件2:
<Place><category> 1122 </category> </Place> <Place><category> 1126 </category> </Place>
Out put:
<Place> <category> 1122 </category> </Place> <Place> <category> 1122 </category </Place> <Place> <category> 1122 </category </Place>
非常感谢你的帮助。
答案 0 :(得分:0)
你可能想要这样的东西:
awk '
/<-Place>/ { f=1 }
f { rec = rec $0 RS }
/<-\/Place>/ {
if (rec ~ /1122/) {
printf "%s", rec
}
rec = ""
f = 0
}
'
但没有样本输入和预期输出,这只是猜测。