zhyiwww
          用平實(shí)的筆,記錄編程路上的點(diǎn)點(diǎn)滴滴………
          posts - 536,comments - 394,trackbacks - 0

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

          </body>
          </html>

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


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

          以下內(nèi)容均引自上述文章。

          Update @ 2007-12-14

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

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

          注意/<\/text>/不在同一行的時(shí)候才好用,不然會匹配到下一個(gè)實(shí)例出現(xiàn)的位置作為結(jié)束邊界。






          |----------------------------------------------------------------------------------------|
                                     版權(quán)聲明  版權(quán)所有 @zhyiwww
                      引用請注明來源 http://www.aygfsteel.com/zhyiwww   
          |----------------------------------------------------------------------------------------|
          posted on 2009-10-29 18:10 zhyiwww 閱讀(8451) 評論(0)  編輯  收藏 所屬分類: linux
          主站蜘蛛池模板: 潞西市| 淄博市| 和顺县| 澄江县| 临桂县| 平定县| 瓮安县| 漾濞| 鄂伦春自治旗| 家居| 香河县| 安平县| 开原市| 额济纳旗| 宿州市| 宁城县| 布尔津县| 马关县| 石门县| 牡丹江市| 浦江县| 读书| 长岛县| 和龙市| 秦安县| 微山县| 新闻| 蚌埠市| 江油市| 新竹市| 九江县| 平果县| 乌什县| 新乡县| 阆中市| 普格县| 岑溪市| 眉山市| 湛江市| 龙门县| 海丰县|