Skip to content

Como comparar dois arquivos de texto usando Linux

12 de maio de 2021

O que saber

  • Para comparar, execute: diff arquivo1 arquivo2
  • Mostre como eles são diferentes com: diff -q arquivo1 arquivo2
  • Mostre como eles são iguais com: diff -s arquivo1 arquivo2

Este artigo explica como usar o Linux para comparar dois arquivos e mostrar as diferenças entre os arquivos na tela ou em um arquivo. Você não instalará um software especial para comparar arquivos usando Linux, mas precisa saber como abrir uma janela de terminal.

Crie os arquivos para comparar

Se você quiser acompanhar este guia, crie dois arquivos de texto que contenham texto semelhante, mas diferente.

Crie o primeiro arquivo

Crie um arquivo chamado arquivo1 e, em seguida, digite o seguinte texto: 10 garrafas verdes em uma parede
10 garrafas verdes em uma parede
Se uma garrafa verde cair acidentalmente
Haveria 9 garrafas verdes na parede

Para criar este arquivo, siga estas instruções:

  1. Abra o arquivo digitando o seguinte comando: nano arquivo1

    A maneira mais rápida de abrir uma janela de terminal no Linux é pressionar o CTRL + ALT + T chaves ao mesmo tempo.

  2. Digite o texto no editor nano.

    Terminal file1 em Nano

  3. Aperte CTRL + O para salvar o arquivo.

  4. Aperte CTRL + X para sair do arquivo.

Crie o segundo arquivo

Em seguida, crie outro arquivo chamado arquivo2 e digite o seguinte texto: 10 garrafas verdes em uma parede
Se 1 garrafa verde cair acidentalmente
Haveria 9 garrafas verdes na parede

Para criar este arquivo, siga estas instruções:

  1. Abra o arquivo digitando o seguinte comando: nano file2

  2. Digite o texto no editor nano.

    Terminal file2 em Nano

  3. Aperte CTRL + O para salvar o arquivo.

  4. Aperte CTRL + X para sair do arquivo.

Como comparar dois arquivos usando Linux

O comando usado no Linux para mostrar as diferenças entre dois arquivos é chamado de comando diff. A forma mais simples do comando diff é a seguinte: diff arquivo1 arquivo2

Se os arquivos forem iguais, nenhuma saída será exibida ao usar este comando. No entanto, como existem diferenças, a saída é semelhante à seguinte: 2,4c2,3
<10 garrafas verdes na parede

> Se 1 garrafa verde cair acidentalmente
> Haveria 9 garrafas verdes na parede

Inicialmente, a saída parece confusa, mas uma vez que você entende a terminologia, é bastante lógico.

Comando de terminal "diff file1 file2" no Linux

As diferenças entre os dois arquivos são as seguintes:

  • O segundo arquivo possui apenas três linhas. O primeiro arquivo contém quatro.
  • O segundo arquivo diz 1 garrafa verde na terceira linha. O primeiro arquivo diz uma garrafa verde.
  • O segundo arquivo diz o vermelho em vez de haveria na linha final.

A saída do comando diff mostra que entre as linhas dois e quatro do primeiro arquivo e as linhas dois e três do segundo arquivo, existem diferenças. Em seguida, ele lista as linhas de dois a quatro do primeiro arquivo, seguidas pelas duas linhas diferentes do segundo arquivo.

Como mostrar apenas se os arquivos forem diferentes

Se você deseja apenas saber se os arquivos são diferentes e não está interessado em quais linhas são diferentes, execute o seguinte comando: diff -q arquivo1 arquivo2

Se os arquivos forem diferentes, o seguinte será exibido: Arquivos file1 e file2 são diferentes

Se os arquivos forem iguais, nada será exibido.

Como mostrar uma mensagem se os arquivos forem iguais

Ao executar um comando, você pode querer saber se ele funcionou corretamente. Você deseja que uma mensagem seja exibida ao executar o comando diff, independentemente de os arquivos serem iguais ou diferentes. Para cumprir este requisito usando o comando diff, use o seguinte comando: diff -s arquivo1 arquivo2

Se os arquivos forem iguais, esta mensagem aparecerá: Os arquivos file1 e file2 são idênticos

Como produzir as diferenças lado a lado

Se houver várias diferenças, pode ser confuso saber quais são as diferenças reais entre os dois arquivos. Você pode alterar a saída do comando diff para que os resultados sejam mostrados lado a lado. Para fazer isso, execute o seguinte comando: diff -y arquivo1 arquivo2

A saída do arquivo usa o | símbolo para mostrar a diferença entre as duas linhas, um < para mostrar uma linha que foi removida e um > para mostrar uma linha que foi acrescentada.

Comando de terminal "diff -y file1 file2" no Linux

Quando você executa o comando usando os arquivos de demonstração neste artigo, todas as linhas aparecem como diferentes, exceto a última linha de arquivo2, que é mostrado como excluído.

Restringir a largura da coluna

Ao comparar dois arquivos lado a lado, pode ser difícil de ler se os arquivos tiverem várias colunas de texto. Para restringir o número de colunas, use o seguinte comando: diff –width = 5 arquivo1 arquivo2

Como ignorar diferenças de maiúsculas e minúsculas ao comparar arquivos

Se você deseja comparar dois arquivos, mas não se importa se as letras maiúsculas e minúsculas são iguais entre os dois arquivos, use o seguinte comando: diff -i arquivo1 arquivo2

Como ignorar espaços em branco à direita no final de uma linha

Se você notar muitas diferenças ao comparar arquivos e as diferenças são causadas por espaços em branco no final das linhas, evite que eles apareçam como alterações executando o seguinte comando: diff -Z arquivo1 arquivo2

Como ignorar todas as diferenças de espaço em branco entre dois arquivos

Se você está interessado apenas no texto de um arquivo e não se importa se há mais espaços em um do que no outro, use o seguinte comando: diff -w arquivo1 arquivo2

Como ignorar linhas em branco ao comparar dois arquivos

Se você não se importa se um arquivo pode ter linhas em branco extras, compare os arquivos usando o seguinte comando: diff -B arquivo1 arquivo2

Resumo

Você pode encontrar mais informações lendo o manual do comando diff. homem diff

O comando diff pode ser usado em sua forma mais simples para mostrar apenas as diferenças entre dois arquivos. Você também pode usá-lo para criar um arquivo diff como parte de uma estratégia de patch. Outro comando que você pode usar para comparar arquivos é o comando cmp. Isso compara arquivos byte por byte.