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.

Tutorial Completo do Comando comm no Linux

Colaboração: Rubens Queiroz de Almeida

Data de Publicação: 21 de abril de 2025

O comando comm é uma ferramenta poderosa e pouco conhecida do Linux, usada para comparar dois arquivos linha a linha e mostrar suas similaridades e diferenças de forma simples. Ele é útil, por exemplo, para analisar listas, resultados de scripts ou controlar alterações em arquivos de texto.

1. Como o comm Funciona

O comm lê dois arquivos ordenados (por padrão, em ordem alfabética), e produz uma saída dividida em três colunas:

  • Coluna 1: Linhas exclusivas do primeiro arquivo.
  • Coluna 2: Linhas exclusivas do segundo arquivo.
  • Coluna 3: Linhas comuns a ambos os arquivos.

2. Sintaxe Básica

 comm [opções] arquivo1 arquivo2

3. Preparando os Arquivos

Importante: Os arquivos de entrada devem estar ordenados. Se não tiver certeza, utilize o comando sort primeiro.

$ sort arquivoA.txt -o arquivoA.txt
$ sort arquivoB.txt -o arquivoB.txt

4. Exemplo Prático

Considere dois arquivos:

arquivoA.txt

ana
bruno
carlos
giovana

arquivoB.txt

ana
carlos
daniel
eduarda

Executando o comm

$ comm arquivoA.txt arquivoB.txt

                ana
bruno
                carlos
        daniel
        eduarda
giovana

  • Linhas exclusivas do arquivoA (coluna 1): bruno e giovana
  • Linhas exclusivas do arquivoB (coluna 2): daniel e eduarda
  • Linhas comuns (coluna 3): ana e carlos

5. Utilizando Opções do comm

Você pode suprimir colunas da saída usando as opções:

-1 Oculta a primeira coluna (mostra apenas as linhas do arquivoB e as comuns)
-2 Oculta a segunda coluna
-3 Oculta a terceira coluna

Listar apenas as linhas comuns aos dois arquivos

$ comm -12 arquivoA.txt arquivoB.txt
ana
carlos

Listar apenas linhas exclusivas de arquivoA

$ comm -23 arquivoA.txt arquivoB.txt
bruno
giovana

Listar linhas exclusivas de qualquer um dos arquivos

$ comm -3 arquivoA.txt arquivoB.txt
bruno
        daniel
        eduarda
giovana

6. Dicas Adicionais

Para comparar arquivos que não foram ordenados, use um pipe com sort:

$ comm <(sort arquivoA.txt) <(sort arquivoB.txt)

Útil em scripts para validar resultados de listas, logs ou inventários.

7. Resumo Rápido

Exemplo Descrição
comm arquivo1 arquivo2 Compara ambos (os dois ordenados)
comm -12 arquivo1 arquivo2 Somente linhas comuns
comm -23 arquivo1 arquivo2 Só linhas exclusivas de arquivo1
comm -13 arquivo1 arquivo2 Só linhas exclusivas de arquivo2
comm -3 arquivo1 arquivo2 Diferentes (sem comuns)

O comm é excelente para manipular listas e comparar arquivos rapidamente, de maneira eficiente e sem precisar recorrer a scripts avançados.

Error: No site found with the domain 'solucoes.idph.com.br' (Learn more)