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 閱讀(8451) 評論(0)  編輯  收藏 所屬分類: linux
          主站蜘蛛池模板: 启东市| 乌兰察布市| 海口市| 河东区| 仁布县| 元阳县| 紫金县| 泰州市| 信宜市| 五家渠市| 大新县| 当阳市| 宕昌县| 太保市| 正定县| 喜德县| 长岛县| 临朐县| 临城县| 沿河| 子洲县| 万盛区| 深圳市| 海门市| 甘泉县| 东安县| 灵璧县| 屏东市| 新邵县| 二连浩特市| 广南县| 江山市| 高陵县| 星座| 读书| 新疆| 淮北市| 江永县| 蒲城县| 江川县| 楚雄市|