考虑以下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)