Linux粘贴命令标准输入

Ame*_*eyj 3 linux shell paste

$paste num let
1    a
2    b
3    c
4    d
Run Code Online (Sandbox Code Playgroud)

所以,当我这样做

$ cat num | paste - - 
1    2
3    4
Run Code Online (Sandbox Code Playgroud)

我的问题是为什么不" cat num | paste - -"生成输出为:

1     1
2     2
3     3
4     4
Run Code Online (Sandbox Code Playgroud)

Jon*_*ler 6

显然,paste从第一个'文件'(标准输入)读取一行,然后从第二个'文件'(也是标准输入)读取一行,并粘贴它们以创建第一行输出.然后它重复.

POSIX规范paste明确涵盖了这一点:

如果-为一个或多个文件指定' ',则应使用标准输入; 对于' -'的每个实例,标准输入应一次一行地循环读取.