GNU Parallel Две или более команд параллельно в последовательности

Прежде всего, я большой поклонник параллелизма GNU. Я хотел бы ускорить ежедневную рутинную загрузку, распаковку и параллельную обработку некоторых файлов. В настоящее время я делаю это в последовательности, в которой распаковка и обработка не начинаются до завершения загрузки. Например, в сценарии оболочки я бы запустил эти две строки:

cat /home/data/daily_dload.txt | parallel -j5 "wget -O /home/data/tmp/{1} -r https://server1.hogan.hulk.warrior

ls -1 /home/data/tmp | parallel -j5 "gunzip /home/data/tmp/{1}"

Есть ли способ запустить распаковку сразу после завершения загрузки файла? Заранее спасибо.


person Chase CB    schedule 23.07.2015    source источник


Ответы (1)


Используя оператор &&:

cat /home/data/daily_dload.txt | parallel -j5 "wget -O /home/data/tmp/{1} -r https://server1.hogan.hulk.warrior/{1} \
&& \
gunzip /home/data/tmp/{1}"
person Felipe Lema    schedule 24.07.2015
comment
вам нужно заключить оператор && в \ и \ ? - person Chase CB; 27.07.2015
comment
Нет. Просто я хотел четко показать две команды, разделенные &&. ``ы нужны, чтобы пропускать строки, чтобы иметь более раннюю. - person Felipe Lema; 27.07.2015