使用input-file和output-document进行Wget

时间:2010-01-12 02:26:23

标签: bash wget xargs

我有一个网址列表,我想使用--input-file提供给wget。

但是我无法理解如何同时控制--output-document值, 如果您逐个发出命令,这很简单。 我想将每个文档保存为其URL的MD5。

 cat url-list.txt | xargs -P 4 wget

xargs就在那里,因为我也想利用max-procs功能进行并行下载。

4 个答案:

答案 0 :(得分:4)

请勿使用cat。您可以从文件中读取xargs。来自man页面:

       --arg-file=file
       -a file
              Read items from file instead of standard input.  If you use this
              option, stdin remains unchanged when commands are  run.   Other‐
              wise, stdin is redirected from /dev/null.

答案 1 :(得分:2)

如何使用循环?

while read -r line
do
   md5=$(echo "$line"|md5sum)
   wget ... $line ... --output-document $md5 ......
done < url-list.txt

答案 2 :(得分:2)

在您的问题中,您使用-P 4表示您希望您的解决方案并行运行。 GNU Parallel http://www.gnu.org/software/parallel/可以帮助您:

cat url-list.txt | parallel 'wget {} --output-document "`echo {}|md5sum`"'

答案 3 :(得分:1)

你可以这样做:

  

cat url-list.txt |同时阅读网址;   做     wget $ url -O $(echo“$ url”| md5);   完成

祝你好运