"<sql>select * from aaaa</sql><mdproject>sadqqqqw<aaa></aaa></mdproject><sql>select * from bbb</sql>"
问题
     之前通过 sed -n /\<sql\>/,/<\<\/sql\>/p 打印出了第一个sql标签开<sql>到第二个sql标签的闭</sql>的内容[/b]
如何截取出每个<sql></sql>标签之间的内容而不是两个一起的?希望得到大家的帮助!! 感谢

解决方案 »

  1.   

    [root@kov4 tmp]# cat 1.lst
    <sql>select * from aaaa</sql><mdproject>sadqqqqw<aaa></aaa></mdproject>
    <sql>select * from bbb</sql>
    [root@kov4 tmp]# awk -F'<sql>|</sql>' '{print $2}' 1.lst
    select * from aaaa
    select * from bbb
    [root@kov4 tmp]#
      

  2.   

    sed 也可以,稍微麻烦点我平板不方便,需要的话改天写给你
      

  3.   

    楼上的朋友 非常感谢你的回复,你回答的内容确实是可以解决上述的问题,但是我真实存在的问题是有很多个文本,我不知道每个文本内到底固定有多少个<sql>标签,我想将所有<sql>标签内的内容都截取出来。
      

  4.   

    sed 也可以,稍微麻烦点我平板不方便,需要的话改天写给你
    楼上的朋友 非常感谢你的回复,你回答的内容确实是可以解决上述的问题,但是我真实存在的问题是有很多个文本,我不知道每个文本内到底固定有多少个<sql>标签,我想将所有<sql>标签内的内容都截取出来。需要得到你的帮助
      

  5.   

    sed 也可以,稍微麻烦点我平板不方便,需要的话改天写给你
    楼上的朋友 非常感谢你的回复,你回答的内容确实是可以解决上述的问题,但是我真实存在的问题是有很多个文本,我不知道每个文本内到底固定有多少个<sql>标签,我想将所有<sql>标签内的内容都截取出来。需要得到你的帮助
    方便的话贴出来几行样本我帮你处理吧,可以用脱敏的数据,随便是什么都没关系。