Curl并行下载文件列表

Curl并行下载文件列表

第一篇文章抱歉,如果我在这里弄乱了=)

使用Ubuntu 14.04lts 64位服务器版本。

我有一个清单(网址列表),只有要下载的 URL,每行一个,如下所示:

http://domain.com/teste.php?a=2&b=3&name=1
http://domain.com/teste.php?a=2&b=3&name=2
...
http://domain.com/teste.php?a=2&b=3&name=30000

正如您所看到的,文件中有很多行(在本例中为 30000 行)。因此,我使用了一个技巧来同时下载许多 URL:

cat url.list | xargs -n 1 -P 10 <<MAGIC COMMAND THAT WILL SAVE ME>>

问题是我想使用名称字段的相同值重命名输出文件,例如:1.html,2.html,...,30000.html ecc,并使用curl来限制文件的大小文件大小为 50KB。所以curl命令应该是这样的:

curl -r 0-50000 -L $URL -o $filename.html -a $filename.log

我怎样才能完成它?

我可以解析管道的输出回显 $URL | sed -n -e 's/^.*name=//p'但我不知道如何在同一行中使用它来获取两个变量($URL 和 $filename)中管道的输出。

我尝试了这个但没有成功:

cat url.list | xargs -n 1 -P 10 | filename=$(sed -n -e 's/^.*name=//p') ; curl -r 0-50000 -L $URL -o $filename.html -a $filename.log

先感谢您

答案1

seq 50000 |
  parallel -P 10 curl -r 0-50000 -L '"http://domain.com/teste.php?a=2&b=3&name="'{} -o {}.html -a {}.log 

相关内容