如何使用 xargs 替换但保留空格分隔符?

sta*_*fry 6 xargs

考虑以下xargs用法:

echo Alice Bob Carol | xargs -n1 echo
Run Code Online (Sandbox Code Playgroud)

它产生三个这样的 echo 语句

echo Alice 
echo Bob 
echo Carol 
Run Code Online (Sandbox Code Playgroud)

考虑这个修改后的xargs用法:

echo Alice Bob Carol | xargs -n1 -I% echo Hello, %. How are you?
Run Code Online (Sandbox Code Playgroud)

它生成一个 echo 语句而不是所需的三个:

echo Hello, Alice Bob Carol. How are you?
Run Code Online (Sandbox Code Playgroud)

这是因为-I根据手册页更改了输入流的分隔方式:

未加引号的空格不会终止输入项;相反,分隔符是换行符

使用替换技术时是否可以保留空格分隔符?

我想出的最好的方法是用来-d指定空格分隔符,有没有更好的方法?

echo -n Alice Bob Carol | xargs -n1 -I% -d\  echo Hello, %. How are you?
Run Code Online (Sandbox Code Playgroud)