我有一个表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