2014-05-05 99 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