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 xargs
as が得gxargs
られ、GNU / Linuxで慣れ親しんだ構文を使用できます。同じことは、OS X上で異なるBSDの同等物を持つgfind
or glocate
やなどのfindutilsパッケージにある他の基本的なコマンドにも当てはまりますgupdatedb
。
.zshrc
(インストールの出力で説明されているように)パスを追加したため、g
プレフィックスを使用する必要はありません。
printf 'a\0a' | xargs -0 -n1 echo
。