2014-05-05 77 views
4

我一直在试图创建一个简单的脚本,它将从.txt文件中下载文件列表,然后使用循环它将读取.txt文件需要的文件可以在其他分离的.txt文件的帮助下下载,在那里它将被下载的文件的地址。但我的问题是我不知道如何做到这一点。我尝试了很多次,但总是失败。使用wget使用bash脚本下载文件

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 

你的帮助是极大的赞赏。

+0

从来没有在$(命令)''使用的变种。看到这个答案:http://stackoverflow.com/questions/19606864/ffmpeg-in-a-bash-pipe/19607361?stw=2#19607361。否则,在这种情况下,您可以使用'cut'而不是'awk'。 –

+0

我有一个问题,如果地址栏在第二列和第二行,我应该如何处理URL文件?我的意思是awk命令.. – user3534255

回答

5

而不是

wget $url 

尝试

wget "${url}${i}" 
6

除了明显的问题是R Sahu在他的回答中指出,就可以避免:

  • 使用awk解析您的网址.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