0
点赞
收藏
分享

微信扫一扫

shell多行匹配如何实现

笑望叔叔 2023-06-30 阅读 80


我想从xml文件中匹配需要的数据:

<A>111111</A>
 <B>1</B>
 <C></C>
 <d>
     <A>22222</A>
     <E>33</E>
 </d>
 <F>99</F>



我的目的是想找出<d> </d>之间<A></A>之间的数值22222;

现在我用的方法是先匹配出<d> </d>之间的内容:
INFO=`sed -n -e '/ <d>/,/<\/d>/p' $XMLFILE`
然后再在结果中匹配出<A> </A>之间的值;
AA=`echo $INFO | sed -n 's/.*<A>\(.*\)<\/A>.*/\1/p'`
这样得到<d> </d>之间<A></A>之间的数值22222;

 

sed -n '/<d>/,/<\/d>/{/<A>/s/.*<A>\(.*\)<\/A>/\1/p}'

 


 

举报

相关推荐

0 条评论