Linux 中不删除唯一行的连接

Linux 中不删除唯一行的连接

我有一个表A:

1 n m n ...
2 m n m ...
3 n m n ...
4 m n m ...
5 n m n ...

我有一个表B:

1 A
3 B
5 C

我想通过匹配两个表的第 1 列来将表 B 的第 2 列与表 A 连接起来,而不删除表 A 中的唯一行以获得以下内容(对于没有匹配的情况,写“NA”):

1 A  n m n ...
2 NA m n m ...
3 B  n m n ...
4 NA m n m ...
5 C  n m n ...

答案1

man join

   -a FILENUM
          also  print unpairable lines from file FILENUM, where FILENUM is
          1 or 2, corresponding to FILE1 or FILE2

   -e EMPTY
          replace missing input fields with EMPTY

所以

join -a1 -e 'NA' -o 0,2.2,1.2,1.3,1.4 A B
1 A n m n
2 NA m n m
3 B n m n
4 NA m n m
5 C n m n

相关内容