Pesquisa de site

Como comparar e mesclar arquivos usando o comando diff3 no Linux


O comando diff3 no Linux é uma ferramenta útil que compara três arquivos e mostra suas diferenças, o que é útil principalmente para programadores e administradores de sistema que trabalham com múltiplas versões do mesmo arquivo e precisam mesclá-los, ou identificar alterações entre diferentes versões.

Neste artigo, veremos os fundamentos do uso do comando diff3, suas opções comuns e alguns exemplos para entender como ele funciona no Linux.

Qual é o comando diff3?

diff3 é uma ferramenta que compara três arquivos linha por linha, identifica as diferenças e os exibe em um formato fácil de entender.

Pode ser usado para:

  • Encontre diferenças entre os três arquivos.
  • Mesclar automaticamente alterações de arquivos diferentes.
  • Lide com conflitos que ocorrem ao mesclar versões de arquivos.

O comando diff3 é semelhante ao comando diff ou ao comando sdiff, mas funciona com três arquivos em vez de dois, o que é particularmente útil quando você tem vários colaboradores trabalhando no mesmo arquivo, e você precisa mesclar suas alterações em uma única versão.

Sintaxe básica do comando diff3

A sintaxe básica do comando diff3 é:

diff3 [options] file1 file2 file3

Explicação do comando acima.

  • file1: A primeira versão do arquivo.
  • file2: A segunda versão do arquivo.
  • file3: A terceira versão do arquivo.

Opções comumente usadas

A seguir estão algumas opções comumente usadas do comando diff3:

  • -e: Crie um script ed que pode ser usado para aplicar alterações a um arquivo.
  • -m: Mescla automaticamente os arquivos.
  • -A: Inclui todas as alterações de todos os arquivos.
  • -E: Tenta mesclar arquivos mesmo se forem encontrados conflitos.
  • -3: mostra apenas as alterações que diferem entre os três arquivos.

Encontrando diferenças entre arquivos no Linux

Digamos que você tenha três arquivos: file1.txt, file2.txt e file3.txt. Cada arquivo contém uma versão ligeiramente diferente do mesmo conteúdo e você deseja compará-los para ver onde estão as diferenças.

Para comparar esses três arquivos, você pode usar o seguinte comando:

diff3 file1.txt file2.txt file3.txt

Aqui está o que esta saída significa:

  • 1:2c: Isso mostra que em file1.txt, a mudança ocorre na linha 2 e o conteúdo da linha 2 é Esta é a linha 2.
  • 2:2c: Isso mostra que em file2.txt, a mudança também acontece na linha 2, mas o conteúdo dessa linha foi modificado para Esta é a linha 2 modificada. .
  • 3:2,3c: Isso mostra que em file3.txt, há alterações nas linhas 2 e 3. A linha 2 permanece a mesma (esta é a linha 2.), mas a linha 3 é uma linha adicional que afirma: Esta é uma linha adicionada.

Mesclando arquivos com diff3 no Linux

Se quiser mesclar os três arquivos e criar um novo arquivo com todas as alterações, você pode usar a opção -m:

diff3 -m file1.txt file2.txt file3.txt

Isso produzirá o conteúdo mesclado com marcadores de conflito mostrando onde há alterações conflitantes.

Aqui está o que esta saída significa:

  • <<<<<<< file1.txt: marca o início de um conflito e mostra a versão do file1.txt.
  • ||||||| file2.txt: Esta linha mostra o conteúdo de file2.txt (arquivo do meio na comparação).
  • =======: Isso separa as linhas conflitantes.
  • >>>>>>> file3.txt: Isso marca a versão de file3.txt e o fim do bloco de conflito.

Você pode editar isso manualmente para manter as alterações desejadas.

Aplicando alterações de vários arquivos para um com diff3

Você também pode usar diff3 para criar um script ed que aplica alterações de file2.txt e file3.txt para arquivo1.txt. Isso pode ser feito usando a opção -e:

diff3 -e file1.txt file2.txt file3.txt > scriptfile

Este comando cria um arquivo chamado scriptfile que contém o script ed gerado, que você pode usar o comando ed para aplicar o script do scriptfile para file1.txt.

ed file1.txt < scriptfile

Isso modificará file1.txt de acordo com as alterações especificadas no scriptfile. Você pode verificar pelo seguinte comando cat para ver se as alterações foram aplicadas:

cat file1.txt

Isso é útil se você deseja automatizar a mesclagem de arquivos usando scripts.

Resolvendo conflitos em fusões diff3

Ao usar diff3 para mesclar, podem surgir conflitos quando houver diferenças entre os três arquivos no mesmo local. Esses conflitos são marcados na saída e você precisará resolvê-los manualmente.

  • Para resolver conflitos, abra o arquivo que contém os marcadores de conflito.
  • Edite o arquivo para remover as linhas indesejadas e manter as alterações desejadas.
  • Após resolver o conflito, salve o arquivo.
Conclusão

O comando diff3 é uma ferramenta poderosa para comparar e mesclar três arquivos no Linux, o que é particularmente útil para lidar com múltiplas versões do mesmo arquivo e resolver conflitos ao mesclar alterações.

Ao compreender seu uso e opções básicas, você pode gerenciar com eficácia versões de arquivos e colaborar com outras pessoas em projetos.

Artigos relacionados: