2010-04-25 57 views
2

我想在命令行中使用curl來獲取一個url,將其管道化爲一個模式,並返回一個匹配該模式的url列表。從curl的輸出中提取一個模式

我遇到了貪婪方面的問題,並且似乎無法通過它。任何對此的幫助將被apprecaited。

curl http://www.reddit.com/r/pics/ | grep -ioE "http://imgur\.com/.+(jpg|jpeg|gif|png)" 

因此,抓住從URL,它返回的HTML的一塌糊塗,這可能需要一些莫名其妙的換行符替換,onless正則表達式可以在一行返回多個模式的數據。該圖案是非常簡單的,任何一個相匹配的字符串...

  • 開始與http://imgur.com/
  • 有AZ,az或0-9(也許有些人),是到目前爲止,5個字符長,8應該永遠掩蓋它如果我想限制圖案的這一方面,我不
  • 終止於.grraphic_file_format_extention(JPG,JPEG,GIF,PNG)

那一下,在那個網址,使用默認設置,我通常應該找回一組好的圖像。我不會反對在同一頁面上使用RSS感覺網址,但實際上可能更容易解析。

謝謝大家!

編輯 感謝一個快速的答案,我的最後一個命令是現在:

$curl -s http://www.reddit.com/r/pics/ | grep -ioE "http:\/\/imgur\.com\/.{1,10}\.(jpg|jpeg|gif|png)" 
+0

你是否願意使用一個真正的XML庫? http://www.reddit.com/r/pics/.rss不是很有效的RSS,但它是格式良好的XML。 – 2010-04-25 04:20:14

+0

我正在尋找只是「一線」這一個。它只是一個我希望隨時運行的命令,我將在一個bash循環中打包,並且丟棄一個10張左右的目錄。 – user170579 2010-04-25 04:23:50

回答

2

嘗試:

http:\/\/imgur\.com\/.{5,8}\.(jpg|jpeg|gif|png) 
+0

謝謝,生病嘗試編輯原件,這裏是我的最終命令:$ curl -s http://www.reddit.com/r/pics/ | grep -ioE「http:\/\/imgur \ .com \ /。{1,10} \。(jpg | jpeg | gif | png)」 – user170579 2010-04-25 04:58:54