Unter Linux können Sie xargs -d,
den hostname
Befehl wie folgt schnell für vier verschiedene Server mit aufeinander folgenden Namen ausführen :
echo -n 1,2,3,4 |xargs -d, -I{} ssh root@www{}.example.com hostname
Es sieht so aus, als ob der OSX-Befehl xargs den Parameter delimiter nicht unterstützt. Können Sie dasselbe Ergebnis mit einem anders formatierten echo
oder einem anderen Befehlszeilendienstprogramm erzielen ?
printf 'a\0a' | xargs -0 -n1 echo
.Alternativ können Sie GNU immer
xargs
über Homebrew und das GNU-findutils
Paket installieren .Installieren Sie Homebrew:
Folge den Anweisungen. Dann installiere findutils:
Dies gibt Ihnen GNU
xargs
asgxargs
und Sie können die Syntax verwenden, die Sie von GNU / Linux gewohnt sind. Gleiches gilt für andere grundlegende Befehle, die im findutils-Paket enthalten sind, z. B.gfind
oderglocate
odergupdatedb
, die unter OS X andere BSD-Entsprechungen haben.quelle
.zshrc
(wie in der Installationsausgabe erklärt), damit ich dasg
Präfix nicht verwenden musste.Wenn Sie möchten, dass es parallel läuft, verwenden Sie GNU Parallel:
quelle
Sie können
tr
in OSX auch die Kommas in neue Zeilen konvertieren und mithilfe von xargs die einzelnen Elemente wie folgt auflisten:quelle