No Linux, você pode xargs -d,
executar rapidamente o hostname
comando em quatro servidores diferentes com nomes sequenciais, da seguinte maneira:
echo -n 1,2,3,4 |xargs -d, -I{} ssh root@www{}.example.com hostname
Parece que o comando OSX xargs não suporta o parâmetro delimitador. Você pode obter o mesmo resultado com um formato diferente echo
ou através de algum outro utilitário de linha de comando?
printf 'a\0a' | xargs -0 -n1 echo
.Como alternativa, você sempre pode instalar o GNU
xargs
através do Homebrew e dofindutils
pacote GNU .Instale o Homebrew:
Siga as instruções. Em seguida, instale o findutils:
Isso fornecerá o GNU
xargs
comogxargs
e você pode usar a sintaxe à qual está acostumado no GNU / Linux. O mesmo vale para outros comandos básicos encontrados no pacote findutils, comogfind
orglocate
ougupdatedb
, que possuem diferentes versões do BSD no OS X.fonte
.zshrc
(conforme explicado na saída da instalação) para não precisar usar og
prefixo.Se você deseja que ele seja executado em paralelo, use o GNU Parallel:
fonte
Você também pode usar
tr
no OSX para converter as vírgulas em novas linhas e usar xargs para enumerar cada item da seguinte maneira:fonte