Linuxでは、次のように連続した名前の4つの異なるサーバーに対してコマンドxargs -d,をすばやく実行できhostnameます。
echo -n 1,2,3,4 |xargs -d, -I{} ssh root@www{}.example.com hostname
OSX xargsコマンドはdelimiterパラメーターをサポートしていないようです。異なる形式のecho、または他のコマンドラインユーティリティを使用して同じ結果を達成できますか?
Linuxでは、次のように連続した名前の4つの異なるサーバーに対してコマンドxargs -d,をすばやく実行できhostnameます。
echo -n 1,2,3,4 |xargs -d, -I{} ssh root@www{}.example.com hostname
OSX xargsコマンドはdelimiterパラメーターをサポートしていないようです。異なる形式のecho、または他のコマンドラインユーティリティを使用して同じ結果を達成できますか?
回答:
どうですか:
echo {1..4} | xargs -n1 -I{} ssh root@www{}.example.com hostname
からman xargs:
-n number
Set the maximum number of arguments taken from standard input for each invocation of utility.
または、HomebrewとGNU パッケージを使用していつでもGNU xargsをインストールできます。findutils
Homebrewをインストールします。
ruby -e "$(curl -fsSL https://raw.githubusercontent.com/Homebrew/install/master/install)"
指示に従ってください。次に、findutilsをインストールします。
brew install findutils
これによりGNU xargsas が得gxargsられ、GNU / Linuxで慣れ親しんだ構文を使用できます。同じことは、OS X上で異なるBSDの同等物を持つgfindor glocateやなどのfindutilsパッケージにある他の基本的なコマンドにも当てはまりますgupdatedb。
.zshrc(インストールの出力で説明されているように)パスを追加したため、gプレフィックスを使用する必要はありません。
printf 'a\0a' | xargs -0 -n1 echo。