我有以下内容的HTML页面,停止贪婪:如何用grep从庆典
[...]
<tr><td class="n"><a href="play-1.0.1.zip">play-1.0.1.zip</a></td></tr>
<tr><td class="n"><a href="play-1.0.2.1.zip">play-1.0.2.1.zip</a></td></tr>
<tr><td class="n"><a href="play-1.0.2.zip">play-1.0.2.zip</a></td></tr>
[...]
而且我想只提取
play-1.0.1.zip
play-1.0.2.1.zip
play-1.0.2.zip
到随后找到最新版本(在这种情况下,将play-1.0.2.1.zip)
所以我试图用
cat tmp.html | grep "<a href=\".*\""
<a href="play-1.0.1.zip">play-1.0.1.zip</a></td><td class="m"
<a href="play-1.0.2.1.zip">play-1.0.2.1.zip</a></td><td class="m"
<a href="play-1.0.2.zip">play-1.0.2.zip</a></td><td class="m"
于是,我就懒:
cat tmp.html | grep "<a href=\".*?\""
和否定报价
cat tmp.html | grep "<a href=\"[^\"]*?\""
他们两个返回没什么
我需要只匹配的部分(而不是href),然后找到最新的,但我stu CK这个贪婪的问题...
-
非常感谢所有的答案,他们都非常有用,这是很难决定哪一个是正确的,到最后我已经解决了它与:
grep -v '.*-RC.*' index.html | grep -oP 'play-1.*?.zip' | sort -Vru | head -1
的grep -E “ strkol 2012-03-15 13:08:56
有没有必要使用'cat tmp.html'与grep因为grep可以处理它自己的文件。你应该使用'grep -E pattern tmp.html'。 – piotrekkr 2012-03-15 13:17:06