Como comparar dois arquivos no Linux

Como comparar dois arquivos no Linux
Se você deseja comparar dois arquivos e decifrar a diferença, um comando chamado “Dif" é usado. Este guia está focado em fornecer o uso do “Dif”Comando com várias opções para obter a diferença entre dois arquivos.

Então, como o “Dif”Comando realmente funcionar? O "Dif”Comando compara os dois arquivos e produz uma lista de diferenças entre os dois arquivos. Mais precisamente, ele produz uma lista de modificações que precisam ser feitas no primeiro arquivo para corresponder ao segundo arquivo. O "Dif”O comando também é usado pelos programadores para obter a diferença entre dois arquivos de código -fonte para desenvolver patches.

Antes de mergulhar nos exemplos, observe que a ordem dos arquivos é muito importante. Porque o "Dif”O comando fornece saída com base na ordem dos arquivos.

Como usar o comando “diff” no Linux para comparar arquivos:

A sintaxe do “Dif”O comando é mencionado abaixo:

$ diff [opções] [File1] [File2]

Primeiro, crie dois arquivos. Estou criando arquivos de texto pelo nome de “Test_File_1.TXT" e “Test_File_2.TXT". Esses arquivos contêm conteúdo com uma pequena diferença:

Agora use o seguinte comando para obter a diferença:

$ diff test_file_1.txt test_file_2.TXT

A saída padrão exibiu as linhas que correspondem de acordo com a ordem dos arquivos mencionados no comando. Então, vamos decodificar a saída:

A comparação dos arquivos é rotulada e cada rótulo tem um número em ambos os lados. O formato é o seguinte:

[Número da linha do arquivo 1] [Label (A, C, D)] [Número da linha do arquivo 2]

Existem três rótulos:

  • a - Adicionar: Adicionar conteúdo no primeiro arquivo para sincronizar com o segundo arquivo.
  • c - Alterar: indica que uma modificação necessária no conteúdo do primeiro arquivo para corresponder ao segundo arquivo.
  • d - Excluir: Remova o conteúdo do primeiro arquivo para combinar com o segundo.

"2d1" indica para excluir a linha número 2 do primeiro arquivo para corresponder ao segundo arquivo da linha número 1.

De forma similar, “4C3” significa fazer uma alteração na quarta linha do primeiro arquivo para corresponder à linha número 3 do segundo arquivo, pois ambas as linhas são ligeiramente diferentes.

Há outro método para ver a diferença, use o "Dif" comando com o "-Y" opção:

$ diff -y -w 60 test_file_1.txt test_file_2.TXT

Na saída acima, o conteúdo de “Test_File_1.TXT" é exibido no lado esquerdo, enquanto o conteúdo de “Text_file_2.TXT" é exibido no lado direito. A diferença é indicada pelos símbolos:

  • | - A linha é diferente no segundo arquivo
  • > - A linha é adicional no segundo arquivo
  • < - Line has been deleted from the second file

O "-w" indica a largura entre o conteúdo de dois arquivos. Para ficar separadamente e ver a diferença, use o seguinte:

$ diff -y -w 60 -supressor -common lines test_file_1.txt test_file_2.TXT

Como obter saída em uma linha usando o comando "diff":

Se o método rotulado for difícil para você decodificar, há uma abordagem mais simples. Usando o "-Q" opção com o "Dif" O comando fornece saída em uma linha. Bem, sem nenhuma informação adicional:

$ diff -q test_file_1.txt test_file_2.TXT

Se os arquivos diferirem, o comando acima fornecerá uma saída. Se os arquivos forem idênticos, não haverá saída. Para demonstrar, estou criando uma cópia de “Test_File_1.TXT" usando:

$ cp test_file_1.txt test_file_3.TXT

Um novo arquivo será criado pelo nome de “Test_File_3.TXT" contendo o mesmo conteúdo que “Test_File_1.TXT" tem. Agora usa:

$ diff -q test_file_1.txt test_file_2.TXT

Como ambos os arquivos têm conteúdo semelhante, portanto, não haveria saída.

Como verificar a diferença de arquivos no modo de contexto usando o comando "diff":

Para obter a comparação no modo de contexto, o "-C" a opção será usada com o "Dif" comando:

$ diff -c test_file_1.txt test_file_2.TXT

Vamos dissecar a saída.

Para manter a diferença, o primeiro arquivo é indicado por "***" junto com a data e a hora da criação, enquanto o segundo arquivo é indicado por "-".

A próxima linha significa uma variedade de linhas consideradas durante a comparação. Para o primeiro arquivo, é “*** 1,6 ****” E para o segundo arquivo, é “-1,5--”:

A diferença é indicada pelos símbolos:

  • + : Linha não está presente no primeiro arquivo. Insira -o no primeiro arquivo ou remova -o do segundo arquivo para corresponder aos dois arquivos.
  • - : A linha existe no primeiro arquivo, mas não no segundo arquivo. Tente inseri -lo no segundo arquivo ou removê -lo do primeiro para corresponder aos dois arquivos.
  • ! : Linha precisa de modificação para corresponder.

Como verificar a diferença de arquivos no modo unificado usando o comando "diff":

O modo unificado é bastante semelhante ao modo de contexto, mas sem informações redundantes. A bandeira que usamos é "-você":

$ diff -u test_file_1.txt test_file_2.TXT

Na saída, o primeiro arquivo é indicado por "-" e o segundo por "+++". A segunda linha mostra o número de linhas consideradas para comparação em ambos os arquivos, depois o conteúdo a ser excluído, adicionado ou modificado com os símbolos com eles. Não haverá símbolo com linhas semelhantes nos dois arquivos.

Como ignorar a sensibilidade do caso ao usar o comando "diff":

Se você deseja comparar os arquivos enquanto ignora a sensibilidade da caixa, use o "-eu" bandeira:

$ diff -i test_file_1.txt test_file_2.TXT

Para demonstração, eu fiz o "D" de “Deepin” No primeiro arquivo pequeno:

Como visto no primeiro comando, a diferença é indicada; Enquanto estiver usando "-eu" Essa diferença foi removida.

Algumas outras opções úteis do "Dif" O comando está listado abaixo:

Opção Descrição
-a Esta opção trata todos os arquivos como arquivos de texto
-B Ignora a modificação onde as linhas estão todas em branco
-E Esta opção ignora a expansão da guia
-EU Ele ignora as mudanças onde todas as linhas correspondem
-s Fornece saída quando dois arquivos são idênticos
-c Ignora todo o espaço branco
-Z Ignora o espaço branco na extremidade da linha

Como usar o VIM Editor para comparar dois arquivos:

Outro método para comparar dois arquivos é usar o “Vimdiff” comando. Para isso, você precisa instalar o VIM:

$ sudo apt install vim

Agora, para comparar dois arquivos, use:

$ vimdiff test_file_1.txt test_file_2.TXT

Ambos os arquivos serão abertos lado a lado. A parte que não corresponde será destacada:

Como comparar dois arquivos usando "Colordiff":

Outra abordagem é uma espécie de extensão do "Dif" comando. Você pode tornar a comparação mais identificável adicionando cores a ele. Para instalar o uso:

$ sudo apt install colordiff

Para comparar arquivos, use:

$ colordiff test_file_1.txt test_file_2.TXT

Você pode substituir "Dif" com “Colordiff” Para obter a saída padrão do "Dif" comando em formato colorido.

Conclusão:

Para comparar arquivos no Linux e até no macOS, um utilitário usado é chamado de "diff". O utilitário "diff" compara dois arquivos e fornece informações sobre as diferenças entre os dois arquivos. Os desenvolvedores usam principalmente o comando "diff" para criar arquivos de patch.

Neste guia, discutimos completamente o "Dif" comando e como usá -lo para comparar dois arquivos com opções diferentes. Também aprendemos a usar “Colordiff” Para tornar as diferenças de arquivo mais reconhecíveis. Mas se você achar difícil de usar o utilitário baseado em terminais, também existem algumas ferramentas baseadas na GUI, como kompare, diffmerge, meld - diff ferramenta e difusa - ferramenta gui giff.