Como comparar dois textos unix

Como comparar dois textos unix

  • 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 parede10 garrafas verdes em uma paredeSe 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.

    Como comparar dois textos unix

  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 paredeSe 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.

    Como comparar dois textos unix

  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.

Como comparar dois textos unix

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.

Como comparar dois textos unix

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.

Ao escrever arquivos de programa ou arquivos de texto normais, os programadores e escritores às vezes desejam saber a diferença entre dois arquivos ou duas versões do mesmo arquivo. Quando você compara dois arquivos de computador no Linux, a diferença entre seus conteúdos é chamada de diff. Esta descrição nasceu de uma referência à saída do diff, o conhecido utilitário de comparação de arquivos de linha de comando do Unix.

Como comparar dois textos unix

Existem várias ferramentas de comparação de arquivos que você pode usar no Linux e, nesta análise, veremos algumas das melhores ferramentas de comparação de arquivos e baseadas em terminal que você pode aproveitar ao escrever código ou outros arquivos de texto.

1. Comando diff

Gosto de começar com a ferramenta de linha de comando original do Unix, que mostra a diferença entre dois arquivos de computador. O Diff é simples e fácil de usar, ele vem pré-instalado na maioria das distribuições Linux. Ele compara os arquivos linha por linha e mostra a diferença entre eles.

Você pode verificar a entrada manual do diff para usá-lo facilmente.

# man diff
Como comparar dois textos unix

Existem alguns invólucros para a ferramenta diff que aprimoram sua funcionalidade e incluem:

Colordiff é um script Perl que produz a mesma saída que diff, mas com destaque de cor e sintaxe. Possui esquemas de cores personalizáveis.

Você pode instalar o Colordiff em seus sistemas Linux, usando as ferramentas padrão do gerenciador de pacotes chamadas yum, dnf ou apt-get conforme mostrado.

# yum install colordiff [On CentOS/RHEL/Fedora] # dnf install colordiff [On Fedora 23+ version] $ sudo apt-get install colordiff [On Debian/Ubuntu/Mint]

Você pode verificar a entrada manual para Colordiff conforme mostrado.

# man colordiff
Como comparar dois textos unix

O utilitário wdiff é um front end para o comando diff usado para comparar arquivos palavra por palavra. Este programa é muito útil ao comparar dois textos para palavras alteradas e para os quais os parágrafos foram recarregados.

Para instalar wdiff em seus sistemas Linux, execute:

# yum install wdiff [On CentOS/RHEL/Fedora] # dnf install wdiff [On Fedora 23+ version] $ sudo apt-get install wdiff [On Debian/Ubuntu/Mint]

Use o manual do wdiff para saber como usá-lo no Linux.

# man wdiff
Como comparar dois textos unix

2. Comando Vimdiff

O Vimdiff funciona de maneira avançada em comparação com o utilitário diff. Ele permite que um usuário edite até quatro versões de um arquivo enquanto mostra suas diferenças. Ao executá-lo, o Vimdiff abre dois, três ou quatro arquivos usando o editor de texto vim.

Como comparar dois textos unix

Visite a página inicial: http://vimdoc.sourceforge.net/htmldoc/diff.html

Tendo olhado as ferramentas diff da velha escola, vamos rapidamente passar para algumas ferramentas diff da GUI disponíveis no Linux.

3. Kompare

Kompare é um empacotador de interface de usuário diferente que permite aos usuários ver as diferenças entre os arquivos e também mesclá-los.

Alguns de seus recursos incluem:

  1. Supports multiple diff formats
  2. Supports comparison of directories
  3. Supports reading diff files
  4. Customizable interface
  5. Creating and applying patches to source files
Como comparar dois textos unix

Visite a página inicial: https://www.kde.org/applications/development/kompare/

4. DiffMerge

DiffMerge é um aplicativo de interface de usuário de plataforma cruzada para comparar e mesclar arquivos. Possui dois motores de funcionalidade, o motor Diff que mostra a diferença entre dois arquivos, que suporta realce intralinha e edição e um motor Merge que produz as linhas alteradas entre três arquivos.

Possui os seguintes recursos:

  1. Supports directory comparison
  2. File browser integration
  3. Highly configurable
Como comparar dois textos unix

Visite a página inicial: https://sourcegear.com/diffmerge/

5. Meld - Ferramenta Diff

Meld é uma ferramenta GUI de comparação e mesclagem leve. Ele permite que os usuários comparem arquivos, diretórios e programas controlados por versão. Criado especificamente para desenvolvedores, ele vem com os seguintes recursos:

  1. Two-way and three-way comparison of files and directories
  2. Update of file comparison as a users types more words
  3. Makes merges easier using auto-merge mode and actions on changed blocks
  4. Easy comparisons using visualizations
  5. Supports Git, Mercurial, Subversion, Bazaar plus many more
Como comparar dois textos unix

Visite a página inicial: http://meldmerge.org/

6. Difuso - Ferramenta Diff GUI

Diffuse é outra ferramenta GUI popular, gratuita, pequena e simples, que pode ser usada no Linux. Escrito em Python, oferece duas funcionalidades principais, ou seja: comparação de arquivos e controle de versão, permitindo edição de arquivos, fusão de arquivos e também saída da diferença entre arquivos.

Você pode ver um resumo de comparação, selecionar linhas de texto em arquivos usando o ponteiro do mouse, combinar linhas em arquivos adjacentes e editar arquivos diferentes. Outros recursos incluem:

  1. Syntax highlighting
  2. Keyboard shortcuts for easy navigation
  3. Supports unlimited undo
  4. Unicode support
  5. Supports Git, CVS, Darcs, Mercurial, RCS, Subversion, SVK and Monotone
Como comparar dois textos unix

Visite a página inicial: http://diffuse.sourceforge.net/

7. XXdiff - Ferramenta de Diff e Merge

XXdiff é uma ferramenta gratuita e poderosa de comparação de arquivos e diretórios e ferramenta de mesclagem que roda em sistemas operacionais como o Unix, como Linux, Solaris, HP/UX, IRIX, DEC Tru64. Uma limitação do XXdiff é sua falta de suporte para arquivos Unicode e edição embutida de arquivos diff.

Possui a seguinte lista de recursos:

  1. Shallow and recursive comparison of two, three file or two directories
  2. Horizontal difference highlighting
  3. Interactive merging of files and saving of resulting output
  4. Supports merge reviews/policing
  5. Supports external diff tools such as GNU diff, SIG diff, Cleareddiff and many more
  6. Extensible using scripts
  7. Fully customizable using resource file plus many other minor features
Como comparar dois textos unix

Visite a página inicial: http://furius.ca/xxdiff/

8. KDiff3 - - Ferramenta Diff e Merge

O KDiff3 é mais uma ferramenta legal de difusão e integração entre plataformas feita a partir do KDevelop. Ele funciona em todas as plataformas do tipo Unix, incluindo Linux e Mac OS X, Windows.

Ele pode comparar ou mesclar dois a três arquivos ou diretórios e tem os seguintes recursos notáveis:

  1. Indicates differences line by line and character by character
  2. Supports auto-merge
  3. In-built editor to deal with merge-conflicts
  4. Supports Unicode, UTF-8 and many other codecs
  5. Allows printing of differences
  6. Windows explorer integration support
  7. Also supports auto-detection via byte-order-mark “BOM”
  8. Supports manual alignment of lines
  9. Intuitive GUI and many more
Como comparar dois textos unix

Visite a página inicial: http://kdiff3.sourceforge.net/

9. TkDiff

TkDiff também é um empacotador de interface de usuário de plataforma cruzada e fácil de usar para a ferramenta de diff do Unix. Ele fornece uma visão lado a lado das diferenças entre dois arquivos de entrada. Ele pode ser executado em Linux, Windows e Mac OS X.

Além disso, possui alguns outros recursos interessantes, incluindo marcadores de diferenças, um mapa gráfico das diferenças para uma navegação fácil e rápida e muito mais.

Visite a página inicial: https://sourceforge.net/projects/tkdiff/

Depois de ler esta revisão de alguns dos melhores comparadores de arquivos e diretórios e ferramentas de mesclagem, você provavelmente deseja experimentar alguns deles. Estas podem não ser as únicas ferramentas diff disponíveis que você pode encontrar no Linux, mas elas são conhecidas por oferecerem alguns dos melhores recursos, você também pode nos informar sobre quaisquer outras ferramentas diff que você testou e acha que merecem ser mencionado entre os melhores.