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.

O comando join

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.

Error: No site found with the domain 's2.dicas-l.com.br' (Learn more)