从手册xargs
:
Run Code Online (Sandbox Code Playgroud)-L max-lines
每个命令行最多使用 max-lines 非空白输入行。尾随空白导致输入行在下一个输入行上逻辑上继续。意味着 -x。
“尾随空格导致输入行在下一个输入行逻辑上继续”是什么意思?你能用一些例子来说明吗?谢谢。
iga*_*gal 10
手册所说的是,输入行末尾的尾随空格将导致xargs
将其视为下一行的一部分 - 有效地转义换行符。考虑以下命令执行:
user@host~:$ (echo "line1"; echo "line2") | xargs -L 1 echo
line1
line2
Run Code Online (Sandbox Code Playgroud)
因为这个-L 1
选项,每行输入被单独处理,所以我们得到两行输出。现在将其与以下示例进行比较,其中输入的第一行包含一个尾随空格:
user@host~:$ (echo "line1 "; echo "line2") | xargs -L 1 echo
line1 line2
Run Code Online (Sandbox Code Playgroud)
请注意,这两行被 视为一行输入xargs
。
这也是值得(每评论)的注意-L max-lines
选项是一个XSI扩展(参见该xargs
公开组网站上的手册页)。这也称为 X/Open 系统接口扩展 -单一 UNIX 规范 (SUS)的补充规范。
有关 POSIX、SUS 和 XSI 之间差异的更多信息,请参阅以下帖子:
或查阅Open Group Base Specifications的Base Definitions Volume中关于一致性的部分。