Sous Linux, vous pouvez utiliser xargs -d,
pour exécuter rapidement la hostname
commande sur quatre serveurs différents avec des noms séquentiels comme suit:
echo -n 1,2,3,4 |xargs -d, -I{} ssh root@www{}.example.com hostname
Il semble que la commande OSX xargs ne prend pas en charge le paramètre délimiteur. Pouvez-vous obtenir le même résultat avec un format différent echo
ou via un autre utilitaire de ligne de commande?
printf 'a\0a' | xargs -0 -n1 echo
.Alternativement, vous pouvez toujours installer GNU
xargs
via Homebrew et lefindutils
paquet GNU .Installez Homebrew:
Suivez les instructions. Installez ensuite findutils:
Cela vous donnera GNU
xargs
asgxargs
et vous pourrez utiliser la syntaxe à laquelle vous êtes habitué depuis GNU / Linux. Il en va de même pour les autres commandes de base trouvées dans le package findutils telles quegfind
ouglocate
ougupdatedb
, qui ont des homologues BSD différents sur OS X.la source
.zshrc
(comme expliqué dans la sortie de l'installation) pour ne pas avoir à utiliser leg
préfixe.Si vous voulez qu'il fonctionne en parallèle, utilisez GNU Parallel:
la source
Vous pouvez également utiliser
tr
dans OSX pour convertir les virgules en nouvelles lignes et utiliser des xargs pour énumérer chaque élément comme suit:la source