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
,但我想指出这种可能性。
我想从文件下载网页列表。我怎样才能阻止 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
,但我想指出这种可能性。