O que -u do diff realmente faz?

O que -u do diff realmente faz?

Parece que -uposso aceitar um argumento numérico extra, mas não consigo pegar o manual,

Diz,

  -u, -U NUM, --unified[=NUM]
          output NUM (default 3) lines of unified context

Alguém cite um exemplo, por favor?

Não consegui encontrar um que funcionasse.

Responder1

-u por si só produz resultados emformato "unificado"o número apenas altera o número de linhas vizinhas incluídas como contexto.

Responder2

Diretamente do artigo da Wikipedia sobre diff:

As diferenças de contexto unificadas foram originalmente desenvolvidas por Wayne Davison em agosto de 1990 (no unidiff que apareceu no Volume 14 de comp.sources.misc). Richard Stallman adicionou suporte diff unificado ao utilitário diff do Projeto GNU um mês depois, e o recurso estreou no GNU diff 1.15, lançado em janeiro de 1991. Desde então, o GNU diff generalizou o formato de contexto para permitir a formatação arbitrária de diffs.

O formato começa com o mesmo cabeçalho de duas linhas que o formato de contexto, exceto que o arquivo original é precedido por "---" e o novo arquivo é precedido por "+++". A seguir estão um ou mais blocos de alteração que contêm as diferenças de linha no arquivo. As linhas contextuais inalteradas são precedidas por um caractere de espaço, as linhas de adição são precedidas por um sinal de mais e as linhas de exclusão são precedidas por um sinal de menos.

Um pedaço começa com informações de intervalo e é imediatamente seguido pelas adições e exclusões de linhas e qualquer número de linhas contextuais. As informações de intervalo são cercadas por sinais duplos e combinam em uma única linha o que aparece em duas linhas no formato de contexto (acima). O formato da linha de informações do intervalo é o seguinte:

@@ -l,s +l,s @@ optional section heading

Então, em todo o arquivo onde há alterações a serem feitas, você verá linhas como estas:

-check this dokument. On
+check this document. On

OBSERVAÇÃO:A -significa que está sendo removido e a +significa que está sendo adicionado.

O comando diff -Utambém pode receber um parâmetro adicional, um número, que significa quantas linhas de texto vizinho ao redor do ponto onde está ocorrendo a diferença entre os 2 arquivos. Isto é útil para obter um melhor contexto sobre o que as diferenças realmente implicam.

Exemplo

arquivo1

$ cat file1.txt 
The Rain in Spain by
Servants Poor Professor Higgins!
Poor Professor Higgins! Night and day
He slaves away! Oh, poor Professor Higgins!
All day long On his feet; Up and down until he's numb;
Doesn't rest; Doesn't eat;

arquivo2

$ cat file2.txt 
The Rain in Spain by
added extra line here
Servants Poor Professor Higgins!
Poor Professor Higgins! Night and day
He slaves away! Oh, poor Professor Higgins!
All day long On his feat; Up and down untile he's numb;
Doesn't rest; Doesn't eat;

diferença

$ diff -U 2 file1.txt file2.txt 
--- file1.txt   2013-04-26 09:39:13.496835363 -0400
+++ file2.txt   2013-04-26 09:38:04.838299195 -0400
@@ -1,6 +1,7 @@
 The Rain in Spain by
+added extra line here
 Servants Poor Professor Higgins!
 Poor Professor Higgins! Night and day
 He slaves away! Oh, poor Professor Higgins!
-All day long On his feet; Up and down until he's numb;
+All day long On his feat; Up and down untile he's numb;
 Doesn't rest; Doesn't eat;

Verdiferença na wikipediapara mais detalhes.

informação relacionada