Primeiro:
PARALLEL_OPTS="..."
Se você usar o $ PARALLEL, o GNU Parallel os selecionará automaticamente.
Você está procurando por --pipe
. Aqui, damos wget
1000 URLs por vez:
cat URLS | parallel --pipe -n 1000 wget -q --input-file=- --output-document=- '2>/dev/null'
É, no entanto, um pouco mais eficiente não contar as linhas, mas apenas fornecer um bloco de URLs (1 MB é o padrão):
cat URLS | parallel --pipe --block 1M wget -q --input-file=- --output-document=- '2>/dev/null'
Isso maximiza em torno de 1 GB / s. Para seu uso é mais provável (quem processa mais de 1 GB de URLs por segundo?), Mas no dia em que você precisa de mais velocidade, essa é a maneira altamente eficiente (por exemplo, útil quando você tem TBs de dados):
parallel -a URLS --pipepart --roundrobin my_command
Ele pode fornecer 1 GB / s por núcleo. Disponível a partir da versão 20150922.
Considere percorrer o tutorial uma vez por ano man parallel_tutorial
. Sua linha de comando vai te amar por isso.