Linuxでは、xargs -d,
は、4つの異なるサーバーに対してhostname
コマンドを次のように連続した名前ですばやく実行します。
echo -n 1,2,3,4 |xargs -d, -I{} ssh root@www{}.example.com hostname
OSX xargsコマンドは区切り文字パラメーターをサポートしていないようです。異なる形式のecho
を使用して、または他のコマンドラインユーティリティを使用して同じ結果を得ることができますか?
または、常にGNU xargs
through Homebrew およびGNU findutils
パッケージをインストールすることもできます。 。
Homebrewをインストールします。
Ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
指示に従ってください。次に、findutilsをインストールします。
brew install findutils
これは、GNU xargs
as gxargs
を提供し、GNU/Linuxで慣れている構文を使用できます。同じことが他の基本的なgfind
またはglocate
またはgupdatedb
など、findutilsパッケージにあるコマンドで、OS Xで対応するBSDが異なります。
並列で実行したい場合は、GNU Parallel:
parallel ssh root@www{}.example.com hostname ::: {1..4}
OSXでtr
を使用してコンマを新しい行に変換し、xargsを使用して各項目を次のように列挙することもできます。
echo -n 1,2,3,4 | tr -s ',' '\n' | xargs -I{} ssh root@www{}.example.com hostname
printf
$ printf '%s\n' 1 2 3 4 | xargs -I{} echo ssh root@www{}.example.com hostname
ssh [email protected] hostname
ssh [email protected] hostname
ssh [email protected] hostname
ssh [email protected] hostname