zhyiwww
          用平實的筆,記錄編程路上的點點滴滴………
          posts - 536,comments - 394,trackbacks - 0

          在你抓取到的html文件,如果想查找并選出一個標簽間的內容的話,就需要使用多行匹配。這一點上grep不能提供此功能。所以就可以使用sed的多行匹配功能。
          比如,你想選出
          <html>
          <body>
          <div class="info">
          ......
          ......
          </div>

          </body>
          </html>

          兩個div標簽之間的內容。
          可以用下面的方法
            $ sed -n -e '/<div>/p' -e '/<div class=\"info\">/,/<\/div>/p' *.html >  all.html


          以上方法參考自此文章http://www.fwolf.com/blog/post/346,這篇文章寫得很好。

          以下內容均引自上述文章。

          Update @ 2007-12-14

          在和bxy討論的過程中,又發現sed的另外一種用途,從html或xml中按照tag對應關系,篩選打印出指定的tag內容,使用了正則中的p命令,好像默認就沒有“不能處理多行內容”以及“貪婪性”的問題,很好用,很強大:

              $ sed -n -e '/<title>/p' -e '/<text /,/<\/text>/p' from.xml

          注意/<\/text>/不在同一行的時候才好用,不然會匹配到下一個實例出現的位置作為結束邊界。






          |----------------------------------------------------------------------------------------|
                                     版權聲明  版權所有 @zhyiwww
                      引用請注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2009-10-29 18:10 zhyiwww 閱讀(8445) 評論(0)  編輯  收藏 所屬分類: linux
          主站蜘蛛池模板: 洛隆县| 绍兴市| 克什克腾旗| 平塘县| 巫溪县| 泰州市| 万安县| 邹平县| 赣州市| 黑河市| 凤阳县| 宜章县| 大连市| 五家渠市| 木里| 富民县| 新余市| 金塔县| 株洲市| 环江| 沁阳市| 应用必备| 黔西县| 洛浦县| 连江县| 屯昌县| 循化| 珲春市| 博客| 会昌县| 襄樊市| 宁南县| 澄迈县| 慈利县| 惠来县| 唐河县| 宿松县| 阿尔山市| 临漳县| 武威市| 临湘市|