wget 批量下载设置文件名

wget set file name in batch download

我正在尝试使用具有 URL 的输入文件 (a.txt) 下载文件,使用以下命令

wget -i a.txt

URL就像

https://domian.com/abc?api=123&xyz=323&title=newFile12
https://domian.com/abc?api=1243&xyz=3223&title=newFile13

我想使用title标签设置URL中的文件名(例如上面URL下载的文件名需要newFile12 ) 但找不到解决方法。

为了完成它,我必须编写一个 python 脚本(类似于这个答案 )并且 运行 一个接一个地写,还有其他方法吗?

查看 wget --content-disposition 或使用 wget -O <outputfile name> <url>

进行循环

以下命令使用服务器提供的文件名下载文件 (vim-readonly-1.1.tar.gz) 而不是 download_script.php?src_id=27233.

wget --content-disposition https://www.vim.org/scripts/download_script.php?src_id=27233

您可以即时创建脚本并将其通过管道传输到 bash。比 wget -i 慢一点,但会保留文件名:

 sed "s/\(.*title=\(.*\)\)/wget -O '' ''/" a.txt

当您对结果满意时,可以将其通过管道传输到 bash:

sed "s/\(.*title=\(.*\)\)/wget -O '' ''/" a.txt | bash