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种情况:

  1. 如果你的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
    
  2. 对于另一种情况,您不需要那么多脚本,只需使用 for 循环遍历每一行并将参数传递给 wget

希望对您有所帮助。

您可以 read 使用带有 readwhile 循环将它们变成变量:

while read a b; do wget -O "$b" "$a"; done < music.txt