在你抓取到的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
注意/
|----------------------------------------------------------------------------------------|
版權聲明 版權所有 @zhyiwww
引用請注明來源 http://www.aygfsteel.com/zhyiwww
|----------------------------------------------------------------------------------------|