Comandos Linux

Exemplos de comandos diff no Linux

Exemplos de comandos diff no Linux
O comando diff é uma análise ou comando informativo que imprime as diferenças entre os arquivos, analisando-os linha por linha, ou diretórios recursivamente enquanto informa ao usuário quais mudanças são necessárias para tornar os arquivos iguais; este ponto é importante para entender os resultados do diff. Este tutorial se concentra no comando diff.

Antes de começar, crie dois arquivos usando qualquer editor de texto (nano é usado neste tutorial) com o mesmo conteúdo:

# nano diffsample1

Pasta interna:

 LinuxHint publica o melhor conteúdo para você 

Aperte CTRL+X e Y para salvar e sair.

Crie um segundo arquivo chamado diffsample2 com o mesmo conteúdo:

# nano diffsample2

Observação: preste atenção aos espaços e tabulações, os arquivos devem ser 100% iguais.

Aperte CTRL+X e Y para salvar e sair.

# diff diffsample1 diffsample2

Como você pode ver, não há saída, não há necessidade de fazer algo para tornar os arquivos iguais porque eles já são iguais.

Agora vamos editar o arquivo diffsample2 para fazer algumas alterações:

# nano diffsample2

Então, vamos substituir a palavra “conteúdo” por “dicas”:

Aperte CTRL+X e Y para salvar e sair.

Agora execute:

# diff diffsample1 diffsample2

Vamos ver o resultado:

A saída acima, "3c3" significa "Linha 3 do primeiro arquivo de deve ser substituída pela linha 3 do segundo arquivo". A parte amigável da saída é que nos mostra qual texto deve ser alterado (“conteúdo para você" para "dicas para você”)

Isso nos mostra que a referência para o comando diff não é o primeiro arquivo, mas o segundo, é por isso que a terceira linha do primeiro arquivo (as 3 primeiras) deve ser alterada (C) como a terceira linha do segundo arquivo (as 3 segundas).

O comando diff pode mostrar 3 caracteres:

c: este personagem instrui um Mudar tem que ser feito.
uma: este personagem instrui algo deve ser Adicionado.
d: este personagem instrui algo deve ser Excluído.

Os primeiros números antes dos caracteres pertencem ao primeiro arquivo, enquanto os números após os caracteres pertencem ao segundo arquivo.

O símbolo < belongs to the first file and the symbol > para o segundo arquivo que é usado como referência.

Vamos inverter a ordem dos arquivos, em vez de executar

# diff diffsample1 diffsample2

corre:

# diff diffsample2 diffsample1

Você pode ver como a ordem foi invertida e agora o arquivo diffsample1 é usado como referência, e nos instrui a mudar “dicas para você” por “conteúdo para você”, esta era a saída anterior:

Agora vamos editar o arquivo diffsample1 assim:

Remova todas as linhas, exceto a primeira linha no arquivo diffsample1. Então corra:

# diff diffsample2 diffsample1

Como você pode ver, uma vez que usamos o arquivo diffsample1 como referência, para tornar o arquivo diffsample2 exatamente igual, precisamos deletar (d) linhas dois e três (2,3) como no primeiro arquivo e primeiras linhas (1) será igual.

Agora vamos inverter a ordem e em vez de executar “# diff diffsample2 diffsample1 ” corre:

# diff diffsample1 diffsample2

Como você pode ver, enquanto o exemplo anterior nos instruiu a remover, este nos instrui a adicionar (uma) linhas 2 e 3 após a primeira linha do primeiro arquivo (1).

Agora vamos trabalhar na propriedade deste programa que diferencia maiúsculas de minúsculas.

Edite o arquivo diffsample2 como:

E edite o arquivo diffsample1 como:

A única diferença são as letras maiúsculas no arquivo diffsample2. Agora vamos compará-lo usando diff novamente:

# diff diffsample1 diffsample2

Como você pode ver diferenças encontradas, as letras maiúsculas, evitamos detectar diferenças em letras maiúsculas, se não estivermos interessados ​​na diferenciação de maiúsculas e minúsculas adicionando o -eu opção:

# diff -i diffsample1 diffsample2

Nenhuma diferença foi encontrada, a detecção de caso foi desativada.

Agora vamos mudar o formato de saída adicionando a opção -você usado para imprimir saídas unificadas:

Além disso, para data e hora, a saída é exibida com um - e + símbolo o que deve ser removido e o que deve ser adicionado para tornar os arquivos iguais.

No início deste artigo eu disse que os espaços e as tabulações devem ser iguais em ambos os arquivos, uma vez que também são detectados pelo comando diff, se quisermos que o comando diff ignore os espaços e tabulações precisamos aplicar o -C opção.

Abra o arquivo diffsample2 e adicione espaços e tabulações:

Como você pode ver, adicionei algumas guias após “the best” na segunda linha e também espaços em todas as linhas, feche, salve o arquivo e execute:

# diff diffsample1 diffsample2

Como você pode ver diferenças foram encontradas, além das letras maiúsculas. Agora vamos aplicar a opção  -C para instruir o diff a ignorar os espaços em branco:

Como você pode ver, apesar da diferença de tabulação apenas encontrar como diferença as letras maiúsculas.
Agora vamos adicionar a opção -i novamente:

#diff -wi diffsample2 diffsample1

O comando diff tem dezenas de opções disponíveis para aplicar para ignorar, alterar a saída, discriminar colunas quando presentes, etc. Você pode obter informações adicionais sobre essas opções usando o comando man ou em http: // man7.org / linux / man-pages / man1 / diff.1.html. Espero que você tenha achado este artigo com exemplos de comandos diff úteis no Linux. Continue seguindo LinuxHint para obter mais dicas e atualizações sobre Linux e rede.

O botão do meio do mouse não funciona no Windows 10
O botão do meio do mouse ajuda você a percorrer longas páginas da web e telas com muitos dados. Se isso parar, você vai acabar usando o teclado para r...
Como alterar os botões esquerdo e direito do mouse no PC com Windows 10
É normal que todos os dispositivos de mouse de computador sejam ergonomicamente projetados para usuários destros. Mas existem dispositivos de mouse di...
Emular cliques do mouse passando o mouse usando o mouse sem cliques no Windows 10
Usar um mouse ou teclado na postura errada de uso excessivo pode resultar em muitos problemas de saúde, incluindo tensão, síndrome do túnel do carpo e...