В Linux вы можете xargs -d,
быстро запустить hostname
команду на четырех разных серверах с последовательными именами следующим образом:
echo -n 1,2,3,4 |xargs -d, -I{} ssh root@www{}.example.com hostname
Похоже, что команда OSX xargs не поддерживает параметр разделителя. Можете ли вы достичь того же результата с другим форматированием echo
или с помощью какой-либо другой утилиты командной строки?
printf 'a\0a' | xargs -0 -n1 echo
.Кроме того, вы всегда можете установить GNU
xargs
через Homebrew иfindutils
пакет GNU .Установите Homebrew:
Следуй инструкциям. Затем установите findutils:
Это даст вам GNU
xargs
asgxargs
, и вы сможете использовать синтаксис, к которому вы привыкли из GNU / Linux. То же самое касается других базовых команд, найденных в пакете findutils, таких какgfind
илиglocate
илиgupdatedb
, которые имеют разные аналоги BSD в OS X.источник
.zshrc
(как объяснено в выводе установки), чтобы мне не пришлось использоватьg
префикс.Если вы хотите, чтобы он работал параллельно, используйте GNU Parallel:
источник
Вы также можете использовать
tr
в OSX для преобразования запятых в новые строки и использовать xargs для перечисления каждого элемента следующим образом:источник