を実行してxargs -n2
入力してクリックx x x x x
すると、Enter4倍の結果のみが得られます。
$ xargs -n2
x x x x x
x x
x x
x x x x x
しかし、これを同じコマンドにパイプすると、同じ数のxが表示されます。
$ echo x x x x x | xargs -n2
x x
x x
x
最初のケースでは、引数の数が四捨五入または切り捨てられるのはなぜですか?
答え1
最初の行では、xargs
まだ2番目の引数または入力が終了するのを待っています。Ctrl-xargs を押してD残りを続行すると、5 番目の引数が単一のx
引数として表示されます。
この例では、これらの動作を説明できます。
(echo "x x x x x"; sleep 5; echo "x") | xargs -n2
出力:
x x
x x
x x # after 5 seconds
x
2番目のステートメントの6番目の項目の後にecho
入力ストリームが完了し、xargs
最後に2番目のパラメーターがありますが、それまでは5秒待ちます。