Bash:从文件列表中下载文件

时间:2014-12-06 18:24:33

标签: bash

我有一个名为files.txt的文件,其中包含我要下载的所有文件。

files.txt

http://file/to/download/IC_0000.tpl
http://file/to/download/IC_0001.tpl

如果我使用

cat files.txt | egrep -v "(^#.*|^$)" | xargs -n 1 wget

下载所有文件。

但我不知道如何使用If files.txt只包含没有http的文件

files.txt

IC_0000.tpl
IC_0001.tpl

我只有这个参数“wget”:

Usage: wget [-c|--continue] [-s|--spider] [-q|--quiet] [-O|--output-document FILE]
        [--header 'header: value'] [-Y|--proxy on/off] [-P DIR]
        [--no-check-certificate] [-U|--user-agent AGENT] [-T SEC] URL...

请帮助我。

非常感谢。

2 个答案:

答案 0 :(得分:5)

只需尝试wget -i files.txt(请参阅http://www.gnu.org/software/wget/manual/wget.html#Logging-and-Input-File-Options

如果您没有文件中的主机,请尝试:

for i in `cat files.txt`; do wget "${HOST}/${i}"; done

答案 1 :(得分:0)

把它留在这里...... 对于MacOSX

file_name=newMP3List.txt && cur_path=$(pwd) && split -l 50 $file_name PART && find . -name "PART*" -print0 | xargs -0 -I f osascript -e "tell application \"Terminal\" to do script \"cd $cur_path && cat f | while read CMD; do curl -O \\\"\$CMD\\\"; done; rm f;\""

for linux

cat newMP3List.txt | while read CMD; do curl -O $CMD; done;

需要用您的文件名

替换newMP3List.txt