wget:使用 wget 从 url 列表下载具有文件名的文件
wget: Download files with filename from list of urls using wget
我有一个文件 music.txt 要下载音频,如下所示:
http://somehow/music/hexfilename1.mp3 1.mp3
http://somehow/music/hexfilename2.mp3 2.mp3
http://somehow/music/hexfilename3.mp3 3.mp3
http://somehow/music/hexfilename4.mp3 4.mp3
我只是想下载mp3文件,并保存为指定的名称。比如从http://somehow/music/hexfilename1.mp3下载,我们会保存为1.mp3.
其实这是一个简单的工作,但可能有2种情况:
如果你的music.txt
和你的答案一样,url是第一组,输出文件是第二组,那么你可以使用以下命令:
IFS="\n"
for line in $(cat music.txt)
do
url=$(echo $line | awk '{ print }')
out=$(echo $line | awk '{ print }')
wget "$url" -O "$out"
done
对于另一种情况,您不需要那么多脚本,只需使用 for
循环遍历每一行并将参数传递给 wget
。
希望对您有所帮助。
您可以 read
使用带有 read
的 while
循环将它们变成变量:
while read a b; do wget -O "$b" "$a"; done < music.txt
我有一个文件 music.txt 要下载音频,如下所示:
http://somehow/music/hexfilename1.mp3 1.mp3
http://somehow/music/hexfilename2.mp3 2.mp3
http://somehow/music/hexfilename3.mp3 3.mp3
http://somehow/music/hexfilename4.mp3 4.mp3
我只是想下载mp3文件,并保存为指定的名称。比如从http://somehow/music/hexfilename1.mp3下载,我们会保存为1.mp3.
其实这是一个简单的工作,但可能有2种情况:
如果你的
music.txt
和你的答案一样,url是第一组,输出文件是第二组,那么你可以使用以下命令:IFS="\n" for line in $(cat music.txt) do url=$(echo $line | awk '{ print }') out=$(echo $line | awk '{ print }') wget "$url" -O "$out" done
对于另一种情况,您不需要那么多脚本,只需使用
for
循环遍历每一行并将参数传递给wget
。
希望对您有所帮助。
您可以 read
使用带有 read
的 while
循环将它们变成变量:
while read a b; do wget -O "$b" "$a"; done < music.txt