2015-03-30 161 views
0

我有這樣的一個文件地址中搜索並提取內完成資源網址:用grep文件

http://deimos.apple.com/WebObjects/Core.woa/DownloadRedirectedTrackPreview/unina.it-dz.5373092572.05373092574.12739786322/enclosure.m4v 

它們是38個數字,並改變的最後一個意甲鏈接。

我試着用這個正則表達式:

grep -io 'http://ex[a-z.-]*/[a-z0-9+-]*/[a-z0-9.,-+]*[.m4v]' 

它提取所有禮物點的文件到M4V文件中的網址,而不是完整的URL它得到的部分網址如下:

http://deimos.apple.com/WebObjects/Core.woa/DownloadRedirectedTrackPreview/unina. 

我錯在哪裏?

我不明白爲什麼會發生。

非常感謝您的努力。

+0

對不起,正則表達式是grep -io'http:// d [az.-]/[a-z0-9 + - ]/[a-z0-9。, - +] * [.m4v]' – Diogenes 2015-03-30 19:14:17

+0

it不是很清楚你想要什麼:你在檢查文件中的文件名或行嗎?還提供了一個更廣泛的示例來測試,連同其所需的輸出 – fedorqui 2015-03-30 19:15:25

+1

'。[.m4v]'將不起作用。 '[]'定義了一個字符類。 「這個位置的單個字符的值可以是'.','m','4'或'v','.m4v'應該是空的,否'']'。 – 2015-03-30 19:15:27

回答

0

你的正則表達式和你提取的文件名做不是匹配。您列出該文件名中首先:

http://ex

其中您正則表達式需要。你可以你的正則表達式更改爲更具這樣這將符合您的網址:

'http://(?:[a-z0-9+-]+/)*[a-z0-9+-]+\.m4v' 
0

對不起喬納森這是一個打字錯誤,而我張貼在我的正則表達式正確代和未使用前所寫。 但問題依然存在。 Marc打開了我的腦海。 我知道怎麼的地址開始,所以我用grep的 -io「http://dei/的.m4v」 嘗試沒有成功:-( fedorqui了最後一抹,也許這個問題是一個點 所以我想 grep的-io 「http://deimos/的.m4v」 :-D 和它的伎倆!

現在我有一個文件給予wget來,而無需專有軟件自動多文件下載。

的文件是播客司法課程釋放在自由的情況下是免費的,但只能以簡單的方式購買Apple或Microsoft(iTunes)的用戶。 現在我有了wget文件來自動化多個文件下載,而不會讓我的系統受到仿真器和專有軟件的影響。

非常感謝!