W systemie Linux można użyć xargs -d,
do szybkiego uruchomienia hostname
polecenia na czterech różnych serwerach o następujących po sobie nazwach:
echo -n 1,2,3,4 |xargs -d, -I{} ssh root@www{}.example.com hostname
Wygląda na to, że polecenie xargs OSX nie obsługuje parametru separatora. Czy możesz osiągnąć ten sam wynik za pomocą innego sformatowania echo
lub innego narzędzia wiersza polecenia?
printf 'a\0a' | xargs -0 -n1 echo
.Alternatywnie, zawsze możesz zainstalować GNU
xargs
poprzez Homebrew ifindutils
pakiet GNU .Zainstaluj Homebrew:
Postępuj zgodnie z instrukcją. Następnie zainstaluj findutils:
To da ci GNU
xargs
asgxargs
i będziesz mógł użyć składni, do której jesteś przyzwyczajony z GNU / Linux. To samo dotyczy innych podstawowych poleceń znalezionych w pakiecie findutils, takich jakgfind
lubglocate
lubgupdatedb
, które mają różne odpowiedniki BSD w OS X.źródło
.zshrc
(jak wyjaśniono w danych wyjściowych instalacji), aby nie musiałem używaćg
przedrostka.Jeśli chcesz, aby działał równolegle, użyj GNU Parallel:
źródło
Możesz także użyć
tr
w OSX do konwersji przecinków na nowe linie i użyć xargs do wyliczenia każdego elementu w następujący sposób:źródło