Я пытаюсь использовать xargs для запуска команды для каждого предоставленного аргумента, но, к сожалению, флаг --replace/-I не работает должным образом при сопряжении с -n. Кажется, {} расширится до полного списка аргументов, считываемых из stdin, независимо от опции -n.
К сожалению, все примеры в Интернете, похоже, относятся к командам (mv, cp, rm), которые будут принимать несколько аргументов в случае раскрытия {}.
Например, при запуске:
echo a b c d | xargs -n 1 -I {} echo derp {}
Выход:
derp a b c d
Но я ожидал:
derp a
derp b
derp c
derp d
Однако запуск его без -I {} дает ожидаемый результат:
echo a b c d | xargs -n 1 echo derp
derp a
derp b
derp c
derp d
Есть ли способ достичь этого с помощью xargs? Мое конечное намерение состоит в том, чтобы использовать его для запуска нескольких (parralel) сессий ssh, например
echo server{1..90} | xargs -n 1 -P 0 -I {} ssh {} 'echo $SOME_HOST_INFO'
Я использую xargs (GNU findutils) 4.4.2
на RHEL 6.3.