Was macht -u of diff wirklich?

Was macht -u of diff wirklich?

Sieht aus, als ob -ues ein zusätzliches Zahlenargument geben könnte, aber ich bekomme das Handbuch nicht ganz hin,

Es sagt,

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

Kann mir bitte jemand ein Beispiel nennen?

Ich konnte kein funktionierendes finden.

Antwort1

-u allein gibt Ergebnisse aus in"einheitliches" Formatdie Zahl ändert lediglich die Anzahl der als Kontext einbezogenen Nachbarzeilen.

Antwort2

Direkt aus dem Wikipedia-Artikel über diff:

Unified Context Diffs wurden ursprünglich im August 1990 von Wayne Davison entwickelt (in unidiff, das in Band 14 von comp.sources.misc erschien). Richard Stallman fügte dem Diff-Dienstprogramm des GNU-Projekts einen Monat später Unified-Diff-Unterstützung hinzu, und die Funktion wurde in GNU Diff 1.15 eingeführt, das im Januar 1991 veröffentlicht wurde. GNU Diff hat seitdem das Kontextformat verallgemeinert, um eine beliebige Formatierung von Diffs zu ermöglichen.

Das Format beginnt mit demselben zweizeiligen Header wie das Kontextformat, außer dass der Originaldatei „---“ und der neuen Datei „+++“ vorangestellt ist. Darauf folgen ein oder mehrere Änderungsblöcke, die die Zeilenunterschiede in der Datei enthalten. Den unveränderten, kontextbezogenen Zeilen ist ein Leerzeichen vorangestellt, Hinzufügungszeilen ein Pluszeichen und Löschungszeilen ein Minuszeichen.

Ein Hunk beginnt mit Bereichsinformationen und wird unmittelbar gefolgt von Zeilenergänzungen, Zeilenlöschungen und einer beliebigen Anzahl von Kontextzeilen. Die Bereichsinformationen sind von doppelten At-Zeichen umgeben und kombinieren in einer einzigen Zeile, was im Kontextformat (oben) auf zwei Zeilen erscheint. Das Format der Bereichsinformationszeile ist wie folgt:

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

Dann finden Sie in der gesamten Datei, wo Änderungen vorgenommen werden müssen, Zeilen wie diese:

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

NOTIZ:A -bedeutet, dass es entfernt wird, und a +bedeutet, dass es hinzugefügt wird.

Der Befehl diff -Ukann auch einen zusätzlichen Parameter annehmen, eine Zahl, die angibt, wie viele Zeilen benachbarten Texts sich um den Punkt befinden, an dem der Unterschied zwischen den beiden Dateien auftritt. Dies ist hilfreich, um einen besseren Kontext dafür zu erhalten, was die Unterschiede tatsächlich bedeuten.

Beispiel

Datei1

$ 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;

Datei2

$ 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;

Unterschied

$ 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;

Sehendiff auf Wikipediafür mehr Details.

verwandte Informationen