这个问题相似的到从列表下载文件但这和我想超越这一点不一样。请不要将其作为重复项关闭。
我在文本文件中有一个要下载的文件列表。我所在的目录中foo.txt
有一个目录,我用它来下载文件。一切都很好。foo
wget -i ../foo.txt
然而,我需要要做的是下载具有特定命名模式的文件。它会将json
API 调用生成的文件下载到特定服务器,但我需要将其保存为特定模式,例如foo_1.json
,因为它实际上并未链接到文件,所以foo_1.json
它不会将其保存为此类。
有什么方法可以扩展wget
功能,以便按照特定的文件名模式(例如按顺序)保存下载的文件?
如果没有,可以使用其他 CLI 方法不是使用wget
是可以接受的。
答案1
你总是可以使用 shell 循环:
while read url; do wget -O foo_$((++i)).json "$url"; done < list.txt
该文件list.txt
是您的 URL 列表,每行一个。它由 while 循环读取,每个 URL 都保存为$url
,wget 会下载它,-O
标志会告诉它保存到名为 的文件中,foo_N.json
其中 的N
当前值是$i
。由于$i
每次迭代都会递增($((++i))
),这将导致文件名序列不断增加。