-Iが設定されている場合、xargsが区切り文字を別の方法で処理するように見えるのはなぜですか?

-Iが設定されている場合、xargsが区切り文字を別の方法で処理するように見えるのはなぜですか?

xargs -n1 -I '{}' echo '{}' <<< "foo bar baz"印刷 foo bar baz

同時にxargs -n1 echo <<< "foo bar baz"印刷

foo
bar
baz

この動作の原因は何ですか?

答え1

指定する-I 区切り記号の変更:

-私 文字列のコピー

標準入力の引数は、<空白>文字ではなく、エスケープされていない<newline>文字で区切ることができます。

foo2番目の例では、との間barのスペースは入力を分割しますbazが、最初の例では入力は単一行なので単一単位として扱われます。

関連情報