2017-04-21 482 views
1

根據wget的--acccept正則表達式的手冊頁時,我需要有選擇地傳輸文件,其名稱匹配一定的正則表達式使用參數。但是,我不知道如何使用--accept-regexwget的:獲取文件匹配的正則表達式

假設我想獲得的文件的diff-000107.tar.gz,diff文件-000114.tar.gz,diff文件-000121.tar.gz,diff文件,000128.tar.gz在IMDB數據目錄ftp://ftp.fu-berlin.de/pub/misc/movies/database/diffs/。 「diffs \ -0001 [0-9] {2} \ .tar \ .gz」似乎是一個好的正則表達式來描述文件名。

然而,執行以下wget命令時

wget -r --accept-regex='diffs\-0001[0-9]{2}\.tar\.gz' ftp://ftp.fu-berlin.de/pub/misc/movies/database/diffs/ 

wget的胡亂獲取在ftp://ftp.fu-berlin.de/pub/misc/movies/database/diffs/目錄中的所有文件。

我想知道有沒有人能說出我可能做錯了什麼?

回答

0

我讀wget手冊頁:

--accept-regex urlregex 
    --reject-regex urlregex 
     Specify a regular expression to accept or reject the complete URL. 

,並注意到,它提到的完整 URL(如像
ftp://ftp.fu-berlin.de/pub/misc/movies/database/diffs/diffs-000121.tar.gz

所以我建議(不已經嘗試過)使用
--accept-regex='.*diffs\-0001[0-9][0-9]\.tar\.gz'

(也許會給相應--regex-type太)

BTW,對於這樣的任務,我也會考慮使用一些腳本語言點菜的Python(或使用libcurlcurl

+0

謝謝,巴西萊。我嘗試了你的建議,甚至添加了「--regex-type = posix」。但同樣的問題依然存在。 –