Comando Linux · 5 min read · Sep 17, 2025

Tutorial do Comando Join do Linux para Iniciantes (5 Exemplos)

Às vezes, você pode querer combinar dois arquivos de uma maneira que a saída faça ainda mais sentido. Por exemplo, pode haver um arquivo contendo o nome de continentes e outro arquivo contendo os nomes dos países localizados nesses continentes, e o requisito é combinar ambos os arquivos de forma que um continente e o país correspondente apareçam na mesma linha.

Esse é apenas um exemplo - pode haver centenas de tais casos de uso. Se você está no Linux e está procurando uma ferramenta que possa ajudá-lo em situações como essas, você pode querer conferir o join, que é uma utilidade de linha de comando. Neste tutorial, discutiremos este comando usando alguns exemplos fáceis de entender.

Por favor, note que todos os exemplos mencionados neste artigo foram testados no Ubuntu 16.04, e a versão do comando join que usamos é 8.25.

Comando join do Linux

O comando join permite combinar linhas de dois arquivos em um campo comum.

join [OPÇÃO]... ARQUIVO1 ARQUIVO2

Aqui está o que a página do manual diz sobre esta ferramenta:

Para cada par de linhas de entrada com campos de junção idênticos, escreva uma linha na saída padrão. O campo de junção padrão é o primeiro, delimitado por espaços em branco. Quando ARQUIVO1 ou ARQUIVO2 (não ambos) é -, leia a entrada padrão.

Os seguintes exemplos devem lhe dar uma boa ideia de como o comando join funciona.

1. Como combinar linhas de arquivos usando o comando join?

Vamos entender o uso básico do comando join. Suponha que existam dois arquivos (file1 e file2) que contêm as seguintes linhas:

1. Ásia:  
2. África:  
3. Europa:  
4. América do Norte:

e

1. Índia  
2. Nigéria  
3. Países Baixos  
4. EUA

Agora, você pode combinar esses dois arquivos da seguinte maneira:

join file1 file2

Aqui está a saída do comando acima no nosso caso:

2. Como fazer o join imprimir linhas não pareáveis?

Por padrão, o comando join imprime apenas linhas pareáveis. Por exemplo, mesmo que file1 contenha um campo extra (linha número 5):

1. Ásia:  
2. África:  
3. Europa:  
4. América do Norte:  
5. América do Sul:

juntar file1 e file2 não produzirá nenhuma saída diferente:

Isso ocorre porque as linhas não pareáveis são deixadas de fora na saída. No entanto, se você quiser, ainda pode tê-las na saída usando a opção de linha de comando -a. Esta opção exige que você passe um número de arquivo para que a ferramenta saiba de qual arquivo você está falando.

Por exemplo, no nosso caso, o comando seria:

join file1 file2 -a 1

Assim, você pode ver que a linha não pareada do número do arquivo 1 (file1 no nosso caso) também foi exibida na saída.

Note que, caso você queira apenas imprimir linhas não pareadas (ou seja, suprimir as linhas pareadas na saída), você pode fazer isso usando a opção de linha de comando -v. Esta opção funciona exatamente da mesma forma que -a.

Aqui está um exemplo da opção -v:

3. Como fornecer campos de junção personalizados?

Como já sabemos, o join combina linhas de arquivos em um campo comum, que é o primeiro campo por padrão. No entanto, se você quiser, pode especificar um campo diferente para cada arquivo. Por exemplo, considere os seguintes conteúdos em file1 e file2, respectivamente.

* 1. Ásia:  
& 2. África:  
@ 3. Europa:  
# 4. América do Norte:
# 1. Índia  
@ 2. Nigéria  
& 3. Países Baixos  
* 4. EUA

Agora, se você quiser que o segundo campo de cada linha seja o campo comum para o join, pode informar isso à ferramenta usando as opções de linha de comando -1 e -2. Enquanto a primeira representa o primeiro arquivo, a última refere-se ao segundo arquivo. Essas opções exigem um argumento numérico que se refere ao campo de junção para o arquivo correspondente.

Por exemplo, no nosso caso, o comando será:

join -1 2 -2 2 file1 file2

E aqui está a saída deste comando:

Note que, caso a posição do campo comum seja a mesma em ambos os arquivos (como no exemplo que acabamos de discutir, onde é 2), você pode substituir a parte -1 [campo] -2 [campo] no comando por -j [campo]. Portanto, no nosso caso, o comando se tornaria:

join -j2 file1 file2

4. Como fazer a operação de join não diferenciar maiúsculas de minúsculas?

Por padrão, a operação do comando join é sensível a maiúsculas e minúsculas. Por exemplo, considere os seguintes arquivos:

file1

A. Ásia:  
B. África:  
C. Europa:  
D. América do Norte:

file2

a. Índia  
b. Nigéria  
c. Países Baixos  
d. EUA

Agora, se você tentar juntar esses dois arquivos, usando o campo comum (primeiro) padrão, nada acontecerá. Isso ocorre porque o caso dos elementos do campo em ambos os arquivos é diferente. Para fazer o join ignorar esse problema de caso, use a opção de linha de comando -i.

Aqui está o comando para o nosso caso:

join -i file1 file2

E a seguinte captura de tela mostra o comando em ação:

5. Como fazer o join não verificar a entrada ordenada?

Por padrão, o comando join verifica se a entrada fornecida está ordenada ou não, e relata se não estiver. Por exemplo, considere a seguinte saída quando as informações em file1 não estavam ordenadas:

Agora, caso você queira que esse erro/aviso desapareça, você pode fazer isso usando a opção –nocheck-order. Aqui está o mesmo comando, mas com esta opção ativada:

Assim, você pode ver que o comando join não verificou a entrada ordenada desta vez.

Conclusão

O join pode não ser uma ferramenta muito fácil de entender, mas uma vez que você se acostuma a ela, pode agir como um grande economizador de tempo para você em algumas situações. Cobrimos a maioria das opções de linha de comando aqui. Experimente essas opções e, uma vez feito, consulte a página do manual do comando para o restante.

Share: X/Twitter LinkedIn

Receba novas postagens na sua caixa de entrada

Sem spam. Cancele a assinatura a qualquer momento.