考虑以下xargs
用法:
echo Alice Bob Carol | xargs -n1 echo
它会产生三个像这样的 echo 语句
echo Alice
echo Bob
echo Carol
考虑这种修改后的xargs
用法:
echo Alice Bob Carol | xargs -n1 -I% echo Hello, %. How are you?
它生成一个 echo 语句,而不是所需的三个:
echo Hello, Alice Bob Carol. How are you?
这是因为-I
改变了输入流的分隔方式,如手册页所述:
不带引号的空格不会终止输入项;相反,分隔符是换行符
使用替换技术时是否可以保留空格分隔符?
我想到最好的办法是使用-d
指定空格分隔符,有没有更好的方法?
echo -n Alice Bob Carol | xargs -n1 -I% -d\ echo Hello, %. How are you?