shell多行匹配如何实现

http://bbs.chinaunix.net/thread-1095236-1-1.html

我想从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}'

 

http://bbs.csdn.net/topics/340192621

 

  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值