De acordo com as Leis 12.965/2014 e 13.709/2018, que regulam o uso da Internet e o tratamento de dados pessoais no Brasil, ao me inscrever na newsletter do portal DICAS-L, autorizo o envio de notificações por e-mail ou outros meios e declaro estar ciente e concordar com seus Termos de Uso e Política de Privacidade.
Colaboração: Rubens Queiroz de Almeida
Data de Publicação: 12 de janeiro de 2025
O comando join
no Linux é uma ferramenta poderosa para combinar linhas
de dois arquivos com base em um campo comum. É particularmente útil quando
você precisa mesclar dados de diferentes fontes.
A sintaxe básica do comando é:
$ join [OPÇÕES] ARQUIVO1 ARQUIVO2
O join
funciona comparando os campos especificados em ambos os arquivos e,
quando encontra uma correspondência, combina as linhas dos dois arquivos. Por
padrão, ele usa o primeiro campo de cada arquivo como chave de junção.
É importante notar que, para o join
funcionar corretamente, os arquivos
devem estar ordenados pelo campo de junção. Vamos explorar alguns exemplos
práticos para entender melhor como o join
funciona.
Imagine que temos dois arquivos: funcionarios.txt
e salarios.txt
.
O arquivo funcionarios.txt
contém:
1 João 2 Maria 3 Pedro
E o arquivo salarios.txt
contém:
1 3500 2 4000 3 3800
Para juntar estes arquivos, usamos o comando:
$ join funcionarios.txt salarios.txt
O resultado será:
1 João 3500 2 Maria 4000 3 Pedro 3800
Agora, vamos considerar um cenário onde o campo de junção não é o
primeiro. Temos um arquivo departamentos.txt
:
RH 1 João TI 2 Maria MKT 3 Pedro
Para juntar este arquivo com salarios.txt
, usamos:
$ join -1 2 -2 1 departamentos.txt salarios.txt
O resultado será:
1 RH João 3500 2 TI Maria 4000 3 MKT Pedro 3800
O join
também permite incluir linhas que não têm
correspondência. Imagine que temos um arquivo funcionarios_extra.txt
:
1 João 2 Maria 3 Pedro 4 Ana
Para incluir todos os funcionários, mesmo os sem salário, usamos:
$ join -a 1 funcionarios_extra.txt salarios.txt
O resultado será:
1 Joãoo 3500 2 Maria 4000 3 Pedro 3800 4 Ana
Podemos também formatar a saída do join
. Por exemplo:
$ join -o 1.2,2.2,1.1 funcionarios.txt salarios.txt
Isso resultará em:
João 3500 1 Maria 4000 2 Pedro 3800 3
O join
também pode ignorar diferenças de maiúsculas e minúsculas. Se
tivermos um arquivo nomes.txt
:
1 JOÃO 2 MARIA 3 PEDRO
Podemos usar:
$ join -i nomes.txt salarios.txt
E o resultado será:
1 JOÃO 3500 2 MARIA 4000 3 PEDRO 3800
Algumas dicas adicionais: se os arquivos não estiverem ordenados, você
pode usar o comando sort
antes do join
.
Por exemplo:
$ join <(sort funcionarios.txt) <(sort salarios.txt)
Para juntar múltiplos arquivos, você pode usar o join
em cascata:
$ join funcionarios.txt salarios.txt | join - departamentos.txt
E se seus arquivos usarem um delimitador diferente, como vírgulas em arquivos
CSV, você pode especificar isso com a opção -t
:
$ join -t, funcionarios.csv salarios.csv
O comando join
é uma ferramenta versátil para combinar dados de
diferentes arquivos no Linux. Com prática, você pode usá-lo para realizar
operações complexas de mesclagem de dados diretamente no terminal. Lembre-se
sempre de verificar se os arquivos estão ordenados corretamente pelo campo
de junção antes de usar o join
, para garantir resultados precisos e
evitar problemas comuns.
This policy contains information about your privacy. By posting, you are declaring that you understand this policy:
This policy is subject to change at any time and without notice.
These terms and conditions contain rules about posting comments. By submitting a comment, you are declaring that you agree with these rules:
Failure to comply with these rules may result in being banned from submitting further comments.
These terms and conditions are subject to change at any time and without notice.
Comentários (1)
Espetacular !