.\" Translated March 2001 by Michael Piefel .TH DIFF 1 "22. Sep 1993" "GNU-Werkzeuge" .SH "NAME" diff \- finde Unterschiede zwischen zwei Dateien .SH "ÜBERSICHT" .B diff \fI[option]...\fR \fIVon-Datei\fR \fINach-Datei\fR .SH "BESCHREIBUNG" Im einfachsten Fall vergleicht .B diff den Inhalt zweier Dateien, .I Von-Datei und .IR Nach-Datei . Ein Dateiname .B \- steht für von der Standardeingabe gelesenen Text. Als Spezialfall vergleicht .B "diff \- \-" eine Kopie der Standardeingabe mit sich selbst. Wenn .I Von-Datei ein Verzeichnis ist und .I Nach-Datei nicht, dann vergleicht .B diff die Datei in .IR Von-Datei , deren Dateiname der von .I Nach-Datei ist und umgekehrt. Die Nicht-Verzeichnis-Datei darf nicht .B \- sein. Sind sowohl .I Von-Datei als auch .I Nach-Datei Verzeichnisse, dann vergleicht .B diff korrespondierende Dateien in beiden Verzeichnissen in alphabetischer Ordnung; dieser Vergleich ist nicht rekursiv, wenn nicht die Option .B \-r oder .B \-\-recursive gegeben ist. .B diff vergleicht nie den tatsächlichen Inhalt eines Verzeichnisses, als wäre es eine eine Datei. Die Datei die voll spezifiziert ist, darf nicht die Standardeingabe sein, da diese namenlos ist und damit keine Datei gleichen Namens gefunden werden kann. .BR diff -Optionen beginnen mit .BR \- , also dürfen normalerweise .I Von-Datei und .I Nach-Datei nicht mit .B \- beginnen. Ein Argument .B \-\- jedoch behandelt alle folgenden Argumente als Dateinamen, selbst wenn sie mit .B \- beginnen. .SS "Optionen" Unten findet man eine Zusammenfassung aller Optionen, die GNU .B diff akzeptiert. Die meisten Optionen haben zwei äquivalente Namen, wobei eine ein einzelner Buchstabe eingeleitet mit .B \- ist, und die andere ein langer Namen eingeleitet mit .BR \-\- . Mehrere Einzelbuchstaben-Optionen können, wenn sie kein Argument nehmen, zu einem einzigen Kommandozeilenwort kombiniert werden: .B \-ac ist äquivalent zu .BR "\-a \-c" . Lange Optionsnamen können zu jedem eindeutigen Präfix ihres Namens abgekürzt werden. Eckige Klammern bedeuten, dass eine Option eine optionales Argument nehmen kann. .TP .BI \- zeilen Zeige .I zeilen (eine ganzen Zahl) Zeilen Kontext an. Diese Option legt selbst kein Ausgabeformat fest; sie hat keinen Effekt, wenn die nicht zusammen mit .B \-c oder .B \-u benutzt wird. Diese Option ist veraltet. Um ordentlich zu funktionieren, braucht .I patch typischerweise mindestens zwei Zeilen Kontext. .TP .B \-a Behandle alle Dateien als Text und vergleiche sie zeilenweise, auch wenn sie nicht Text zu sein scheinen. .TP .B \-b Ignoriere Änderungen in der Menge von Whitespace (Leerzeichen und Tabulatoren). .TP .B \-B Ignoriere Änderungen, die nur leere Zeilen einfügen oder löschen. .TP .B \-\-brief Melde nur, ob die Dateien sich unterscheiden, nicht die Details der Unterschiede. .TP .B \-c Benutze das Kontext-Ausgabeformat. .TP .BI "\-C " zeilen .br .ns .TP .BI \-\-context[= zeilen ] Benutze das Kontext-Ausgabeformat, zeige .I zeilen (eine ganzen Zahl) Zeilen Kontext an, oder drei, wenn .I zeilen nicht gegeben ist. Um ordentlich zu funktionieren, braucht .I patch typischerweise mindestens zwei Zeilen Kontext. .TP .BI \-\-changed\-group\-format= format Nutze .IR format , um eine Zeilengruppe, die sich unterscheidende Zeilen aus beiden Dateien enthält, im If-then-else-Format anzuzeigen. .TP .B \-d Ändere den Algorithmus, um vielleicht einen kleineren Satz von Änderungen zu finden. Das macht .B diff langsamer (manchmal viel langsamer). .TP .BI "\-D " name Erzeuge Ausgabe im zusammengeführten If-then-else-Format, abhängig vom Präprozessormakro .IR name . .TP .B \-e .br .ns .TP .B \-\-ed Erzeuge Ausgabe, die ein gültiges .BR ed -Skript ist. .TP .BI \-\-exclude= muster Beim Vergleich von Verzeichnissen: Ignoriere Dateien und Unterverzeichnisse, deren Basisnamen auf das .I muster passen. .TP .BI \-\-exclude\-from= datei Beim Vergleich von Verzeichnissen: Ignoriere Dateien und Unterverzeichnisse, deren Basisnamen auf irgendein Muster in .I datei passen. .TP .B \-\-expand\-tabs Expandiere Tabulatoren in der Ausgabe, um die Ausrichtung der Tabulatoren in den Eingabedateien zu erhalten. .TP .B \-f Erzeuge Ausgabe, die vage an ein .BR ed -Skript erinnert, aber Änderungen in der Reihenfolge hat, in der sie in der Datei auftreten. .TP .BI "\-F " regaus Im Kontext- und vereinten Format: Zeige für jeden Batzen von Unterschieden etwas aus der letzten vorangehenden Zeile, auf das der reguläre Ausdruck .I regaus passt. .TP .B \-\-forward\-ed Erzeuge Ausgabe, die vage an ein .BR ed -Skript erinnert, aber Änderungen in der Reihenfolge hat, in der sie in der Datei auftreten. .TP .B \-h Diese Option hat momentan keine Wirkung; sie ist nur für Kompatibilität zu Unix vorhanden. .TP .B \-H Benutze Heuristiken, um die Behandlung großer Dateien, die viele verstreute kleine Änderungen haben, zu beschleunigen. .TP .BI \-\-horizon\-lines= zeilen Wirf die letzten .I zeilen Zeilen des gemeinsamen Präfix und ersten .I zeilen Zeilen des gemeinsamen Suffix nicht weg .TP .B \-i Ignoriere Änderungen in Groß-/Kleinschreibung. .TP .BI "\-I " regaus Ignoriere Änderungen, die nur Zeilen einfügen oder löschen, die .I regaus entsprechen. .TP .BI \-\-ifdef= name Erzeuge Ausgabe im zusammengeführten If-then-else-Format, abhängig vom Präprozessormakro .IR name . .TP .B \-\-ignore\-all\-space Ignoriere Whitespace (Leerzeichen und Tabulatoren) beim Vergleich von Zeilen. .TP .B \-\-ignore\-blank\-lines Ignoriere Änderungen, die nur leere Zeilen einfügen oder löschen. .TP .B \-\-ignore\-case Ignoriere Änderungen in Groß-/Kleinschreibung. .TP .BI \-\-ignore\-matching\-lines= regaus Ignoriere Änderungen, die nur Zeilen einfügen oder löschen, die .I regaus entsprechen. .TP .B \-\-ignore\-space\-change Ignoriere Änderungen in der Menge von Whitespace (Leerzeichen und Tabulatoren). .TP .B \-\-initial\-tab Gib einen Tabulatoren an Stelle eines Leerzeichens vor dem Text einer Zeile aus im Normal- oder Kontext-Format. Das führt dazu, das die Ausrichtung von Tabulatoren in der Zeile normal aussieht. .TP .B \-l Leite die Ausgabe durch .BR pr , um sie zu paginieren. .TP .BI "\-L " marke .br .ns .TP .BI \-\-label= marke Benutze .I marke an Stelle des Dateinamen im Kopf von Kontext- und vereintem Format. .TP .B \-\-left\-column Drucke nur die linke Spalte von zwei gemeinsamen Zeilen im Seite-an-Seite-Format. .TP .BI \-\-line\-format= format Nutze .IR format , um alle Eingabezeilen im If-then-else-Format anzuzeigen. .TP .B \-\-minimal Ändere den Algorithmus, um vielleicht einen kleineren Satz von Änderungen zu finden. Das macht .B diff langsamer (manchmal viel langsamer). .TP .B \-n Gib Unterschiede im RCS-Format aus; wie .BR \-f , nur das jedes Kommando die Zahl der betroffenen Zeilen angibt. .TP .B \-N .br .ns .TP .B \-\-new\-file Beim Vergleich von Verzeichnissen: Wenn eine Datei nur in einem Verzeichnis gefunden wird, behandle sie als vorhanden aber leer im anderem Verzeichnis. .TP .BI \-\-new\-group\-format= format Nutze .IR format , um eine Gruppe von Zeilen aus der zweiten Datei im If-then-else-Format auszugeben. .TP .BI \-\-new\-line\-format= format Nutze .IR format , um eine Zeile aus der zweiten Datei im If-then-else-Format auszugeben. .TP .BI \-\-old\-group\-format= format Nutze .IR format , um eine Gruppe von Zeilen aus der ersten Datei im If-then-else-Format auszugeben. .TP .BI \-\-old\-line\-format= format Nutze .IR format , um eine Zeile aus der ersten Datei im If-then-else-Format auszugeben. .TP .B \-p Zeige für jede Änderung, in welcher C-Funktion sie ist. .TP .B \-P Beim Vergleich von Verzeichnissen: Wenn eine Datei nur im zweiten der beiden Verzeichnisse gefunden wird, behandle sie als vorhanden aber leer im anderem Verzeichnis. .TP .B \-\-paginate Leite die Ausgabe durch .BR pr , um sie zu paginieren. .TP .B \-q Melde nur, ob die Dateien sich unterscheiden, nicht die Details der Unterschiede. .TP .B \-r Beim Vergleich von Verzeichnissen: Vergleiche jegliche Unterverzeichnisse rekursiv. .TP .B \-\-rcs Gib Unterschiede im RCS-Format aus; wie .BR \-f , nur das jedes Kommando die Zahl der betroffenen Zeilen angibt. .TP .B \-\-recursive Beim Vergleich von Verzeichnissen: Vergleiche jegliche Unterverzeichnisse rekursiv. .TP .B \-\-report\-identical\-files .br .ns .TP .B \-s Melde, wenn zwei Dateien gleich sind. .TP .BI "\-S " datei Beim Vergleich von Verzeichnissen: Beginne mit Datei .IR datei . Dies wird benutzt, um einen abgebrochenen Vergleich fortzusetzen. .TP .B \-\-sdiff\-merge\-assist Gib zusätzliche Informationen aus, um .B sdiff zu helfen. .B sdiff benutzt diese, wenn es .B diff aufruft. Diese Option ist nicht dazu bestimmt, von Nutzern direkt aufgerufen zu werden. .TP .B \-\-show\-c\-function Zeige für jede Änderung, in welcher C-Funktion sie ist. .TP .BI \-\-show\-function\-line= regaus Im Kontext- und vereinten Format: Zeige für jeden Batzen von Unterschieden etwas aus der letzten vorangehenden Zeile, auf das der reguläre Ausdruck .I regaus passt. .TP .B \-\-side\-by\-side Benutze das Seite-an-Seite-Format. .TP .B \-\-speed\-large\-files Benutze Heuristiken, um die Behandlung großer Dateien, die viele verstreute kleine Änderungen haben, zu beschleunigen. .TP .BI \-\-starting\-file= file Beim Vergleich von Verzeichnissen: Beginne mit Datei .IR datei . Dies wird benutzt, um einen abgebrochenen Vergleich fortzusetzen. .TP .B \-\-suppress\-common\-lines Gib gemeinsame Zeilen im Seite-an-Seite-Format nicht aus. .TP .B \-t Expandiere Tabulatoren in der Ausgabe, um die Ausrichtung der Tabulatoren in den Eingabedateien zu erhalten. .TP .B \-T Gib einen Tabulatoren an Stelle eines Leerzeichens vor dem Text einer Zeile aus im Normal- oder Kontext-Format. Das führt dazu, das die Ausrichtung von Tabulatoren in der Zeile normal aussieht. .TP .B \-\-text Behandle alle Dateien als Text und vergleiche sie zeilenweise, auch wenn sie nicht Text zu sein scheinen. .TP .B \-u Benutze das vereinte Ausgabeformat. .TP .BI \-\-unchanged\-group\-format= format Nutze .IR format, um eine Gruppe von gemeinsamen Zeilen aus beiden Dateien im If-then-else-Format auszugeben. .TP .BI \-\-unchanged\-line\-format= format Nutze .IR format, um im If-then-else-Format eine Zeile, die in beiden Dateien auftritt, auszugeben. .TP .B \-\-unidirectional\-new\-file Beim Vergleich von Verzeichnissen: Wenn eine Datei nur im zweiten der beiden Verzeichnisse gefunden wird, behandle sie als vorhanden aber leer im anderem Verzeichnis. .TP .BI "\-U " lines .br .ns .TP .BI \-\-unified[= zeilen ] Benutzt das vereinte Ausgabeformat, zeige dabei .I zeilen (eine ganze Zahl) Zeilen Kontext, oder drei wenn .I zeilen nicht gegeben ist. Um ordentlich zu funktionieren, braucht .I patch typischerweise mindestens zwei Zeilen Kontext. .TP .B \-v .br .ns .TP .B \-\-version Gib die Versionsnummer von .B diff aus. .TP .B \-w Ignoriere Whitespace (Leerzeichen und Tabulatoren) beim Vergleich von Zeilen. .TP .BI "\-W " spalten .br .ns .TP .BI \-\-width= spalten Benutze eine Ausgabebreite von .I spalten Spalten im Seite-an-Seite-Format. .TP .BI "\-x " muster Beim Vergleich von Verzeichnissen: Ignoriere Dateien und Unterverzeichnisse, deren Basisnamen auf das .I muster passen. .TP .BI "\-X " datei Beim Vergleich von Verzeichnissen: Ignoriere Dateien und Unterverzeichnisse, deren Basisnamen auf irgendein Muster in .I datei passen. .TP .B \-y Benutze das Seite-an-Seite-Format. .SH "SIEHE AUCH" .BR cmp (1), .BR comm (1), .BR diff3 (1), .BR ed (1), .BR patch (1), .BR pr (1), .BR sdiff (1). .SH "DIAGNOSE" Ein Beendigungsstatus von 0 bedeutet, dass keine Unterschiede gefunden wurden, 1 heißt, es gab einige Unterschiede; eine 2 bedeutet Ärger.