根据 wget 的手册页, - acccept-regex 是我需要选择性地传输名称与某个正则表达式匹配的文件时使用的参数。但是,我不确定如何使用 - accept-regex 。
假设我想在IMDB数据中获取文件 diffs-000107.tar.gz,diffs-000114.tar.gz,diffs-000121.tar.gz,diffs-000128.tar.gz 目录ftp://ftp.fu-berlin.de/pub/misc/movies/database/diffs/。 "的的diff \ -0001 [0-9] {2} \焦油\。广州&#34。似乎是一个正确的正则表达式来描述文件名。
但是,执行以下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 :(得分:0)
我正在阅读wget
手册页:
--accept-regex urlregex --reject-regex urlregex Specify a regular expression to accept or reject the complete 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
)
curl
)
答案 1 :(得分:0)
请注意--accept-regex
是完整的URL。但是我们的目标是一些特定的文件。因此,我们将使用-A
。
例如
wget -r -np -nH -A "IMG[012][0-9].jpg" http://x.com/y/z/
将从URL将所有文件从IMG00.jpg下载到IMG29.jpg。
请注意,匹配模式包含类似于外壳的通配符,例如“书”或“ zelazny196 [0-9] *”。
参考: wget手册:https://www.gnu.org/software/wget/manual/wget.html 正则表达式:https://regexone.com/