使用wget使用bash脚本下载文件

时间:2014-05-05 02:40:37

标签: bash loops wget cat

我一直在尝试创建一个简单的脚本,该脚本将从.txt文件中下载文件列表,然后使用循环它将读取.txt需要帮助下载哪些文件另一个分隔的.txt文件,在其中将下载文件的地址。但我的问题是我不知道该怎么做。我已多次尝试过,但我总是失败。

file.txt
1.jpg
2.jpg
3.jpg
4.mp3
5.mp4

=====================================

url.txt
url = https://google.com.ph/

=====================================

download.sh
#!/bin/sh
url=$(awk -F = '{print $2}' url.txt)
for i in $(cat file.txt);
do 
wget $url
done

非常感谢您的帮助。

2 个答案:

答案 0 :(得分:6)

而不是

wget $url

尝试

wget "${url}${i}"

答案 1 :(得分:6)

R Sahu在答案中指出的明显问题外,你可以避免:

  • 使用awk解析您的url.txt文件。
  • 使用for $(cat file.txt)遍历file.txt文件。

以下是您可以做的事情:

#!/bin/bash

# Create an array files that contains list of filenames
files=($(< file.txt))

# Read through the url.txt file and execute wget command for every filename
while IFS='=| ' read -r param uri; do 
    for file in "${files[@]}"; do 
        wget "${uri}${file}"
    done
done < url.txt