我正在使用 wget 从输入文件中读取一批 url 并将所有内容下载到单个输出文件中,我想在其下载内容之前附加每个 url,有人知道该怎么做吗?
谢谢!
我正在使用 wget 从输入文件中读取一批 url 并将所有内容下载到单个输出文件中,我想在其下载内容之前附加每个 url,有人知道该怎么做吗?
谢谢!
afaik wget 不直接支持您设想的用例。但是,使用标准工具,您可以模拟此功能。
我们将按以下步骤进行:
wget
启用日志记录的调用sed
处理执行下面详述的脚本的日志约定:使用以下文件名:
wgetin.txt
:带有要使用 wget 获取的 url 的文件wgetout.sed
: sed 脚本wgetout.final
: 最终结果wgetass.sh/.cmd
: shell/batch 脚本来组装下载的文件编织在 url 数据中wget.log
: wget 调用的日志文件sed 脚本(Linux):
# delete lines _not_ matching the regex
/^\(Saving to: .\|--[0-9: \-]\+-- \)/! { d; }
# turn remaining content into something else
s/^--[0-9: \-]\+-- \(.*\)$/echo '\1\n' >>wgetout.final/
s/^Saving to: .\(.*\).$/cat '\1' >>wgetout.final/
命令行(Linux):
rm wgetout.final | rm wgetass.sh | wget -i wgetin.txt -o wget.log | sed -f wgetout.sed -r wget.log >wgetass.sh | chmod 755 wgetass.sh | ./wgetass.sh
Windows 批处理脚本的语法略有不同。当然,wget 和 sed 的 windows 端口必须先安装。
sed 脚本(Windows):
# delete lines _not_ matching the regex
/^\(Saving to: .\|--[0-9: \-]\+-- \)/! { d; }
# turn remaining content into something else
s/^--[0-9: \-]\+-- \(.*\)$/echo "\1" >>wgetout.final/
s/^Saving to: .\(.*\).$/type "\1" >>wgetout.final/
命令行(Windows):
del wgetout.final && del wgetass.cmd && wget -i wgetin.txt -o wget.log && sed -f wgetout.sed -r wget.log >wgetass.cmd && wgetass.cmd