Isso é possível com o comando join
usando a opção -a
(duas vezes, uma para cada número de arquivo). Exemplo:
join -a1 -a2 1.txt 2.txt
Suponha que eu tenha dois arquivos com esta aparência:
Arquivo 1:
1 x
2 y
3 z
5 l
Arquivo 2:
1 a
2 b
4 c
5 c
E eu quero me juntar a eles usando a primeira coluna como chave para dar
1 x a
2 y b
3 z
4 c
5 l c
onde uma linha ausente em um arquivo significa apenas que eu omito seus dados. Eu pensei que join
faria o truque, mas parece insistir em pular qualquer linha que não apareça em ambos os arquivos e eu não consigo encontrar uma opção para fazer isso de outra forma. Pelo menos -e
não funcionou como eu pensei que seria. Qual é a maneira correta de fazer isso?
Tags command-line linux