我有一个网址列表,我想使用--input-file提供给wget。
但是我无法理解如何同时控制--output-document值, 如果您逐个发出命令,这很简单。 我想将每个文档保存为其URL的MD5。
cat url-list.txt | xargs -P 4 wget
xargs就在那里,因为我也想利用max-procs功能进行并行下载。
答案 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); 完成