4

我有一个 URL 列表,我想使用 --input-file 将其输入 wget。

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

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

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

4

4 回答 4

4

不要使用cat. 您可以xargs从文件中读取。从man页面:

       --arg-file=文件
       -一份文件
              从文件而不是标准输入中读取项目。如果你使用这个
              选项,运行命令时标准输入保持不变。其他-
              明智的做法是,标准输入从 /dev/null 重定向。
于 2010-01-12T05:06:48.487 回答
2

使用循环怎么样?

while read -r line
do
   md5=$(echo "$line"|md5sum)
   wget ... $line ... --output-document $md5 ......
done < url-list.txt
于 2010-01-12T02:33:51.163 回答
2

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

cat url-list.txt | parallel 'wget {} --output-document "`echo {}|md5sum`"'
于 2010-06-10T19:55:14.237 回答
1

你可以这样做:

猫 url-list.txt | 读取网址时;做 wget $url -O $( echo "$url" | md5 ); 完毕

祝你好运

于 2010-01-12T02:32:03.297 回答