我有以下內容的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