如何在wget中使用正则表达式来拒绝文件?

Hak*_*kim 14 regex linux wget download

我正在尝试使用wget工具下载网站的内容.我使用-R选项来拒绝某些文件类型.但是还有其他一些我不想下载的文件.这些文件的名称如下,并且没有任何扩展名.

string-ID
Run Code Online (Sandbox Code Playgroud)

例如:

newsbrief-02
Run Code Online (Sandbox Code Playgroud)

我如何告诉wget不要下载这些文件(其名称以指定字符串开头的文件)?

Ski*_*rou 32

由于(显然)v1.14 wget接受正则表达式:--reject-regex--accept-regex(--regex-type posix默认情况下,pcre如果使用libpcre支持编译,则可以设置为).

请注意,--reject-regex每次wget通话似乎只能使用一次.也就是说,|如果要在多个正则表达式中选择,则必须在单个正则表达式中使用:

wget --reject-regex 'expr1|expr2|…' http://example.com
Run Code Online (Sandbox Code Playgroud)

  • 感谢几个正则表达式的例子. (4认同)
  • @CMCDragonkai 你的问题的第二部分已经在我的回答中解决了。它确实适用于 `.` 和 `*`,例如 `wget -r --reject-regex ".*foobar.*" http://example.com` 将丢弃 `http://example.com/foobar/ `. (2认同)

Igo*_*bin 7

您不能在wget -R键中指定正则表达式,但可以指定模板(如shell中的文件模板).

答案如下:

$ wget -R 'newsbrief-*' ...
Run Code Online (Sandbox Code Playgroud)

您还可以使用?和符号类[].

有关更多信息,请参阅info wget.