Junte-se sem remover linhas exclusivas no Linux

1

Eu tenho uma tabela A:

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

Eu tenho uma tabela B:

1 A
3 B
5 C

Eu quero entrar na coluna 2 da tabela B com a tabela A correspondendo à coluna 1 de ambas as tabelas, sem remover as linhas exclusivas da tabela A para obter o seguinte (para nenhuma correspondência escrever um "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 ...
    
por Johnny Tam 23.01.2018 / 04:15

1 resposta

3

De 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

então

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
    
por 23.01.2018 / 04:27