【发布时间】:2010-01-12 02:26:22
【问题描述】:
我有一个 URL 列表,我想使用 --input-file 将其输入 wget。
但是我不知道如何同时控制 --output-document 值, 如果您一一发出命令,这很简单。 我想将每个文档保存为其 URL 的 MD5。
cat url-list.txt | xargs -P 4 wget
xargs 之所以存在,是因为我还想利用 max-procs 功能进行并行下载。
【问题讨论】:
我有一个 URL 列表,我想使用 --input-file 将其输入 wget。
但是我不知道如何同时控制 --output-document 值, 如果您一一发出命令,这很简单。 我想将每个文档保存为其 URL 的 MD5。
cat url-list.txt | xargs -P 4 wget
xargs 之所以存在,是因为我还想利用 max-procs 功能进行并行下载。
【问题讨论】:
不要使用cat。您可以让xargs 从文件中读取。来自man 页面:
【讨论】:
xargs -P 4 -a url-list.txt wget
使用循环怎么样?
while read -r line
do
md5=$(echo "$line"|md5sum)
wget ... $line ... --output-document $md5 ......
done < url-list.txt
【讨论】:
在您的问题中,您使用 -P 4 表示您希望您的解决方案并行运行。 GNU Parallel http://www.gnu.org/software/parallel/ 可以帮助你:
cat url-list.txt | parallel 'wget {} --output-document "`echo {}|md5sum`"'
【讨论】:
你可以这样做:
cat url-list.txt |读取网址时; 做 wget $url -O $( echo "$url" | md5 ); 完成
祝你好运
【讨论】: