Linux команда diff - команда сравнения текстовых файлов.
Índice:
- Como usar o comando
diff - Formato Normal
- Formato de Contexto
- Formato unificado
- Ignorar caso
- Conclusão
diff
é um utilitário de linha de comando que permite comparar dois arquivos linha por linha. Também pode comparar o conteúdo dos diretórios.
O comando
diff
é mais comumente usado para criar um patch contendo as diferenças entre um ou mais arquivos que podem ser aplicados usando o comando
patch
.
Como usar o comando
diff
A sintaxe para o comando
diff
é a seguinte:
diff… FILES
O comando
diff
pode exibir a saída em vários formatos, sendo os formatos normal, de contexto e unificado os mais comuns. A saída inclui informações sobre quais linhas nos arquivos devem ser alteradas para que se tornem idênticas. Se os arquivos corresponderem, nenhuma saída será produzida.
Para salvar a saída do comando em um arquivo, use o operador de redirecionamento:
diff file1 file2 > patch
, usaremos os dois arquivos a seguir para explicar como o comando
diff
funciona:
Ubuntu Arch Linux Debian CentOS Fedora
arquivo2
Kubuntu Ubuntu Debian Arch Linux Centos Fedora
Formato Normal
Em sua forma mais simples, quando o comando
diff
é executado em dois arquivos de texto sem nenhuma opção, ele produz uma saída no formato normal:
diff file1 file2
A saída será mais ou menos assim:
0a1 > Kubuntu 2d2 < Arch Linux 4c4, 5 < CentOS --- > Arch Linux > Centos
O formato de saída normal consiste em uma ou mais seções que descrevem as diferenças. Cada seção é assim:
change-command < from-file-line… --- > to-file-line…
0a1
,
2d2
e
4c4, 5
são comandos de alteração. Cada comando de alteração contém o seguinte, da esquerda para a direita:
- O número da linha ou o intervalo de linhas no primeiro arquivo. Um caractere de alteração especial. O número da linha ou o intervalo de linhas no segundo arquivo.
O caractere de alteração pode ser um dos seguintes:
-
a- Adicione as linhas.c- Mude as linhas.d- Exclua as linhas.
O comando change é seguido pelas linhas completas que são removidas (
<
) e adicionadas ao arquivo (
>
).
Vamos explicar a saída:
-
0a1- Adicione a linha1do segundo arquivo no início do arquivo1 (após a linha0).-
> Kubuntu- A linha da segunda linha que é adicionada ao primeiro arquivo, conforme descrito acima.
2d2- Exclua a linha2no primeiro arquivo. O símbolo2após odsignifica que, se a linha não for excluída, ela aparecerá na linha2no segundo arquivo.-
< Arch Linux- a linha excluída.
4c4, 5- Substitua (altere) a linha5no primeiro arquivo pelas linhas4-5do segundo arquivo.-
< CentOS- A linha no primeiro arquivo a ser substituído.---- Separador.> Arch Linuxe> Centos- Linhas do segundo arquivo substituindo a linha no primeiro arquivo.
-
Formato de Contexto
Quando o formato de saída de contexto é usado, o comando
diff
exibe várias linhas de contexto em torno das linhas que diferem entre os arquivos.
A opção
-c
diz ao
diff
para produzir saída no formato de contexto:
diff -c file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 6 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 7 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
A saída começa com os nomes e os carimbos de data e hora, se os arquivos são comparados e uma ou mais seções que descrevem as diferenças. Cada seção é assim:
*************** *** from-file-line-numbers **** from-file-line… --- to-file-line-numbers ---- to-file-line…
-
from-file-line-numbersto-file-line-numbers- Os números de linha ou o intervalo de linhas separadas por vírgula no primeiro e no segundo arquivo, respectivamente.from-file-lineeto-file-line- As linhas que diferem e as linhas de contexto:- As linhas que começam com dois espaços são linhas de contexto, as linhas iguais nos dois arquivos. As linhas que começam com o símbolo de menos (
-) são as linhas que não correspondem a nada no segundo arquivo. Linhas ausentes no segundo arquivo. Linhas começando com o símbolo de mais (+) são as linhas que não correspondem a nada no primeiro arquivo. Linhas ausentes no primeiro arquivo. Linhas que começam com o ponto de exclamação (!) São as linhas que são alteradas entre dois arquivos. Cada grupo de linhas começando com!do primeiro arquivo tem uma correspondência correspondente no segundo arquivo.
- As linhas que começam com dois espaços são linhas de contexto, as linhas iguais nos dois arquivos. As linhas que começam com o símbolo de menos (
Vamos explicar as partes mais importantes da saída:
- Neste exemplo, temos apenas uma seção descrevendo as diferenças.
*** 1, 6 ****e--- 1, 7 ----nos informa o alcance das linhas do primeiro e do segundo arquivos incluídos nesta seção. LinhasUbuntu,Debian,Fedorae última linha vazia são iguais nos dois arquivos. Essas linhas estão começando com espaço duplo. Linha- Arch Linuxpartir do primeiro arquivo não corresponde a nada no segundo arquivo. Embora essa linha também exista no segundo arquivo, as posições são diferentes.Linha+ Kubuntudo segundo arquivo não corresponde a nada no primeiro arquivo.Linha! CentOS! CentOSdo primeiro arquivo e linhas! Arch Linux! Arch Linuxe! CentOS! CentOSdo segundo arquivo é alterado entre os arquivos.
Por padrão, o número de linhas de contexto é padronizado para três. Para especificar outro número, use a opção
-C
(
--contexts
):
diff -C 1 file1 file2
*** file1 2019-11-25 21:00:26.422426523 +0100 --- file2 2019-11-25 21:00:36.342231668 +0100 *************** *** 1, 5 **** Ubuntu - Arch Linux Debian ! CentOS Fedora --- 1, 6 ---- + Kubuntu Ubuntu Debian ! Arch Linux ! Centos Fedora
Formato unificado
O formato de saída unificado é uma versão aprimorada do formato de contexto e produz uma saída menor.
Use a opção
-u
para dizer ao
diff
para imprimir a saída no formato unificado:
diff -u file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian -CentOS +Arch Linux +Centos Fedora
A saída começa com os nomes e os carimbos de data e hora dos arquivos e uma ou mais seções que descrevem as diferenças. Cada seção tem o seguinte formato:
*************** @@ from-file-line-numbers to-file-line-numbers @@ line-from-files…
-
@@ from-file-line-numbers to-file-line-numbers @@- O número da linha ou o intervalo das linhas do primeiro e do segundo arquivos incluídos nesta seção.line-from-files- As linhas que diferem e as linhas de contexto:- As linhas que começam com dois espaços são linhas de contexto, as linhas iguais nos dois arquivos. As linhas que começam com o símbolo de menos (
-) são as linhas removidas do primeiro arquivo. As linhas que começam com o símbolo de mais (+) são as linhas que são adicionadas do primeiro arquivo.
- As linhas que começam com dois espaços são linhas de contexto, as linhas iguais nos dois arquivos. As linhas que começam com o símbolo de menos (
Ignorar caso
Como você pode observar nos exemplos acima, o comando
diff
maiúsculas de minúsculas por padrão.
Use a opção
-i
para dizer ao
diff
para ignorar maiúsculas e minúsculas:
diff -ui file1 file2
--- file1 2019-11-25 21:00:26.422426523 +0100 +++ file2 2019-11-25 21:00:36.342231668 +0100 @@ -1, 6 +1, 7 @@ +Kubuntu Ubuntu -Arch Linux Debian +Arch Linux CentOS Fedora
Conclusão
Comparar arquivos de texto para diferenças é uma das tarefas mais comuns para administradores de sistemas Linux.
O comando
diff
compara os arquivos linha por linha. Para mais informações, digite
man diff
em seu terminal.
A Dell busca expandir sua oferta no Linux Para expandir suas ofertas no Linux, a Dell está pesquisando novos dispositivos do tipo netbook e em breve oferecerá atualizações do sistema operacional Linux Em um esforço para expandir suas ofertas de Linux, a Dell está pesquisando novos dispositivos do tipo netbook e em breve oferecerá atualizações de netbooks para o Linux, disse uma autoridade da empresa na quarta-feira. A empresa está pesquisando a possibilidade de oferecer novos produtos Linux. bas
Smartbooks são dispositivos do tipo netbook que são alimentados por chips projetados pela Arm. Os dispositivos suportam principalmente o sistema operacional Linux e são projetados para aqueles que dependem da Web para a maior parte de sua computação. A Dell não pôde dizer se ofereceria um livro inteligente.
Aproveite a linha de comando com o comando Take
Integre o prompt de comando, a GUI e uma poderosa linguagem de lote com o potente kit de ferramentas Take Command. > Você não adora quando procura um programa que precisa para executar uma função, encontrá-la e depois descobrir que ela faz muito mais? Eu encontrei o Take Command ($ 100, 30 dias de teste gratuito) depois de ter sido frustrado com a linha de comando ruim no Windows. Eu descobri que isso me deu o que eu queria, e muitas coisas que eu não sabia que queria - mas agora eu definitivame
O complemento Diff-IE para o Internet Explorer ajuda a identificar alterações em uma página da Web
O Diff-IE é um protótipo do Microsoft Research para Internet Explorer, que destaca as alterações em uma página da Web desde a última vez que você a visitou.







