【发布时间】:2026-02-12 10:00:01
【问题描述】:
$paste num let
1 a
2 b
3 c
4 d
所以当我这样做时
$ cat num | paste - -
1 2
3 4
我的问题是为什么“cat num | paste - -”不生成输出为:
1 1
2 2
3 3
4 4
【问题讨论】:
$paste num let
1 a
2 b
3 c
4 d
所以当我这样做时
$ cat num | paste - -
1 2
3 4
我的问题是为什么“cat num | paste - -”不生成输出为:
1 1
2 2
3 3
4 4
【问题讨论】:
很明显,paste 从第一个“文件”(标准输入)中读取一行,然后从第二个“文件”(也是标准输入)中读取一行并粘贴它们以创建第一行输出。然后重复。
paste 的 POSIX 规范明确涵盖了这一点:
如果为一个或多个文件指定了“
-”,则应使用标准输入;对于“-”的每个实例,标准输入应一次读取一行,循环读取。
【讨论】:
你可以使用“paste num num”来生成
1 1
2 2
3 3
4 4
【讨论】:
t1=$(cat 1.txt)
t2=$(cat 2.txt)
echo "$t1" | paste - <(echo "$t2")
GNU bash,版本 4.3.11(1)-release (x86_64-pc-linux-gnu)
:)
【讨论】: