Первое:
PARALLEL_OPTS="..."
Если вы вместо этого используете $ PARALLEL, GNU Parallel подберет их автоматически.
Вы ищете - труба
. Здесь мы указываем wget
1000 URL-адресов за раз:
cat URLS | parallel --pipe -n 1000 wget -q --input-file=- --output-document=- '2>/dev/null'
Однако немного эффективнее не подсчитывать строки, а вместо этого просто указывать блок URL-адресов (по умолчанию 1 МБ):
cat URLS | parallel --pipe --block 1M wget -q --input-file=- --output-document=- '2>/dev/null'
Максимальная скорость составляет около 1 ГБ / с. Для вашего использования этого, скорее всего, будет достаточно (кто обрабатывает более 1 ГБ URL-адресов в секунду?), Но в тот день, когда вам понадобится больше скорости, это очень эффективный способ (например, полезный, когда у вас есть ТБ данных):
parallel -a URLS --pipepart --roundrobin my_command
Он может обеспечить скорость 1 ГБ / с на ядро. Доступно с версии 20150922.
Рассмотрите возможность прохождения учебника один раз в год man parallel_tutorial
. Ваша командная строка полюбит вас за это.