Como usar o shell paralelo com dois arquivos

0

Eu quero usar o paralelismo neste exemplo:

cat codigos.txt | parallel -j 10 "wget http://mywebsite.com/teste?id={}&x=&date=01/01/2017" --load-cookies=cookies.txt

Eu tenho três arquivos: codigos.txt , um arquivo com os IDs, dates.txt , um arquivo com as datas e cookies.txt do arquivo com o cookie que preciso para fazer a solicitação.

O que eu quero fazer é salvar a resposta de mywebsite.com para cada URL, usando o conteúdo dos meus arquivos.

Problemas:

  1. Como faço para usar informações provenientes de dois arquivos?
  2. A URL é cortada no "&" (mesmo quando coloco as aspas). Exemplo:

request made to http://mywebsite.com/teste?id=1

Como neste exemplo (mas sem colocar o espaço ou corte por causa do '&'):

cat abc-file | parallel -a - -a def-file echo

referência: link

    
por Tatiana Saturno 13.06.2017 / 00:10

1 resposta

0

Eu suponho que você deseja executar:

wget http://mywebsite.com/teste?id=codigo1&x=&date=01/01/2017" --load-cookies=cookies.txt
wget http://mywebsite.com/teste?id=codigo1&x=&date=02/01/2017" --load-cookies=cookies.txt
wget http://mywebsite.com/teste?id=codigo1&x=&date=03/01/2017" --load-cookies=cookies.txt
wget http://mywebsite.com/teste?id=codigo2&x=&date=01/01/2017" --load-cookies=cookies.txt
wget http://mywebsite.com/teste?id=codigo2&x=&date=02/01/2017" --load-cookies=cookies.txt
wget http://mywebsite.com/teste?id=codigo2&x=&date=03/01/2017" --load-cookies=cookies.txt

se o arquivo codigos.txt contiver:

codigo1
codigo2

e dates.txt contém:

01/01/2017
02/01/2017
03/01/2017

então isso funcionará:

mywget() {
    wget "http://mywebsite.com/teste?id=$1&x=&date=$2" --load-cookies=cookies.txt;
}
export -f mywget
parallel mywget :::: codigos.txt dates.txt
    
por 14.06.2017 / 12:25