Curl lista de arquivos de download paralelo

Curl lista de arquivos de download paralelo

primeiro post, desculpe se fiz alguma bagunça aqui =)

Usando a versão do servidor Ubuntu 14.04lts 64bits.

Eu tenho uma lista (url.lista) com apenas URLs para download, um por linha, parecido com este:

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

Como você pode ver, há muitas linhas no arquivo (neste caso 30.000). Por causa disso, estou usando um truque para baixar vários URLs simultaneamente:

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

O problema é que eu gostaria de renomear o arquivo de saída com o mesmo valor do campo nome, como: 1.html, 2.html, ..., 30000.html ecc, e usar curl para limitar o tamanho do arquivo para 50 KB. Portanto, o comando curl deve ser algo como:

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

Como posso fazer isso?

Posso analisar a saída do tubo comecoar $URL | sed -n -e 's/^.*nome=//p'mas não sei como usar isso na mesma linha pegando a saída de um pipe em 2 variáveis ​​($URL e $filename).

Eu tentei isso sem sucesso:

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

Agradeço antecipadamente

Responder1

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

informação relacionada