Regular-Expression

Wget 正則表達式無法通過 ftp 獲取文件

  • November 27, 2019

從網站

<ftp://atmos.nmsu.edu/PDS/data/mslrem_1001/DATA/>

我想下載.TAB所有以 RMD 結尾的文件。為此,我嘗試了以下命令:

wget -r -nd --accept-regex '.*(RMD)\d+\_+[A-Z][0-9]\.(TAB)' ftp://atmos.nmsu.edu/PDS/data/mslrem_1001/DATA/SOL_00001_00089/SOL00010/

網址不同只是為了嘗試。問題是 wget 忽略了正則表達式並下載了所有文件,但我不知道為什麼。

嘗試更簡單的方法:

wget -r -nd -A '*RMD*.TAB' ftp://atmos.nmsu.edu/PDS/data/mslrem_1001/DATA/

您可以嘗試使用萬用字元代替正則表達式。從手冊

‘--no-glob’

關閉 FTP 萬用字元。萬用字元是指使用類似於 shell 的特殊字元(萬用字元),如 ‘*’、’?’、’

$$ ’ and ‘ $$’ 一次從同一目錄中檢索多個文件,例如:

wget ftp://gnjilux.srk.fer.hr/*.msg

預設情況下,如果 URL 包含萬用字元,通配​​將打開。此選項可用於永久打開或關閉通配。

您可能必須引用 URL 以保護它不被您的 shell 擴展。Globbing 使 Wget 查找特定於系統的目錄列表。這就是為什麼它目前僅適用於 Unix FTP 伺服器(以及那些模擬 Unix ls 輸出的伺服器)。

例子:

wget -r -nd "ftp://atmos.nmsu.edu/PDS/data/mslrem_1001/DATA/*.TAB"

引用自:https://unix.stackexchange.com/questions/379922