如何在Wget的--accept-regex参数中使用OR正则表达式过滤指定目录
问题解决方法
你之前的配置未生效是因为wget默认使用POSIX基本正则表达式(BRE)语法,该语法下|作为OR运算符需要额外加反斜杠转义,否则会被识别为普通符号匹配。以下是两种可行的配置方案:
方案1:直接适配默认正则规则
对OR运算符进行转义即可生效,适配三个州的命令如下:
wget --accept-regex '^/CO_\|^/WY_\|^/SD_' --no-parent --recursive https://example.com/Projects/
方案2:使用扩展正则(更易读)
添加--regex-type=posix-extended参数指定使用扩展正则语法,不需要额外转义,正则写法更直观不易出错:
wget --regex-type=posix-extended --accept-regex '^/(CO|WY|SD)_' --no-parent --recursive https://example.com/Projects/
注:以上方案均适配绝大多数Linux发行版默认预装的GNU wget版本
内容的提问来源于stack exchange,提问作者ENIAC-6
相关产品推荐
相关产品推荐

