Wget:没有查询字符串的文件名

Wget: Filenames without the query string

我想从文件下载网页列表。我怎样才能阻止 Wget 将查询字符串附加到保存的文件上?

wget http://www.example.com/index.html?querystring

我需要将其下载为 index.html,而不是 index.html?querystring

有-O选项:

wget -O file.html http://www.example.com/index.html?querystring

因此您可以稍微更改脚本以将正确的文件名传递给 -O 参数。

我终于放弃使用 -O 并将其包装在 bash 函数中以使其更容易。我把它放在我的 ~/.bashrc 文件中:

wget-rmq ()
{
  [ -z "" ] && echo 'error: wget-rmq requires a URL to retrieve as the first arg'
  local output_filename="$(echo  | sed 's/?.*//g' | sed 's|https.*/||g')"
  wget -O "${output_filename}" ""
}

然后当我要下载文件时:

wget-rmq http://www.example.com/index.html?querystring

替换正则表达式相当简单。如果任何 ? 出现在查询字符串开始之前的 URL 中,那么它将中断。实际上这并没有发生,因为 URL 编码要求 ? 在 URL 中作为 %3F,但我想指出这种可能性。