Startseite > Textverarbeitung & Suche > diff

diff: Vergleich von Unterschieden zwischen zwei Dateien (Unified-Format)

Der Befehl diff analysiert und gibt die Unterschiede zwischen zwei Dateien oder Verzeichnissen aus. Insbesondere die Option `-u` (Unified) zeigt die Ergebnisse im Unified-Format an, das geänderte Zeilen zusammen mit ihrem umgebenden Kontext anzeigt. Dies ist äußerst nützlich für die Überprüfung von Codeänderungen oder die Nachverfolgung von Änderungsverläufen in Versionskontrollsystemen. Dieses Format hilft dabei, intuitiv zu verstehen, welche Teile hinzugefügt, gelöscht oder geändert wurden.

Übersicht

diff -u vergleicht den Inhalt zweier Dateien und gibt die Unterschiede im Unified-Format aus. Dieses Format zeigt geänderte Zeilen zusammen mit einigen Zeilen Kontext, sodass leicht nachvollzogen werden kann, welche Teile wie geändert wurden. Dies ist ein unverzichtbares Werkzeug, insbesondere für die Quellcodeverwaltung oder die Nachverfolgung von Konfigurationsdateiänderungen.

Hauptmerkmale

  • Anzeige von Unterschieden im Unified-Format
  • Bereitstellung von Kontext für Änderungen
  • Nützlich für Code-Reviews und Versionsverwaltung
  • Klare Unterscheidung von Hinzufügungen/Löschungen/Änderungen

Wichtige Optionen

Der Befehl diff bietet verschiedene Optionen. Hier werden die am häufigsten mit der Option `-u` verwendeten Optionen erläutert.

Ausgabeformate

Vergleichsverhalten

Erzeugter Befehl:

Kombinieren Sie die Befehle.

Beschreibung:

`diff` Führen Sie den Befehl aus.

Kombinieren Sie diese Optionen und führen Sie die Befehle virtuell zusammen mit der KI aus.

Anwendungsbeispiele

Verschiedene Anwendungsbeispiele für den Befehl diff -u.

Vergleich der Unterschiede zwischen zwei Dateien im Unified-Format

diff -u file1.txt file2.txt

Gibt die Unterschiede zwischen file1.txt und file2.txt im Unified-Format aus.

Rekursiver Vergleich von Dateien in zwei Verzeichnissen

diff -ur dir1 dir2

Vergleicht rekursiv alle Dateien in den Verzeichnissen dir1 und dir2 und gibt die Unterschiede im Unified-Format aus.

Vergleich von Dateien unter Ignorierung von Leerzeichenänderungen

diff -uw file1.txt file2.txt

Vergleicht Dateien und ignoriert Änderungen bei Leerzeichen (Leerzeichen, Tabulatoren usw.), um nur tatsächliche Inhaltsunterschiede zu ermitteln.

Vergleich von Dateien unter Ignorierung von Zeilen mit bestimmten Mustern

diff -u -I '^#' config1.conf config2.conf

Vergleicht die Unterschiede zwischen den Konfigurationsdateien config1.conf und config2.conf unter Ignorierung von Kommentarzeilen (beginnend mit '#').

Speichern der Unified-Ausgabe als Patch-Datei

diff -u old_file.txt new_file.txt > changes.patch

Gibt die Unterschiede zwischen zwei Dateien im Unified-Format aus und speichert das Ergebnis in der Datei 'changes.patch'. Diese Datei kann mit dem Befehl 'patch' angewendet werden.

Tipps & Hinweise

Tipps zur effektiven Interpretation und Nutzung der Ausgabe von diff -u.

Interpretation der Unified-Ausgabe

Die Ausgabe von diff -u verwendet die folgenden Symbole, um Änderungen anzuzeigen:

  • --- (drei Bindestriche): Zeigt den Pfad und den Zeitstempel der Originaldatei (old) an.
  • +++ (drei Pluszeichen): Zeigt den Pfad und den Zeitstempel der neuen Datei (new) an.
  • @@ -OLD_START,OLD_COUNT +NEW_START,NEW_COUNT @@: 'Chunk-Header', der die Zeilennummer und den Bereich in der Datei angibt, in dem die Änderung aufgetreten ist.
  • - (Bindestrich): Eine Zeile, die nur in der Originaldatei vorhanden ist und eine gelöschte Zeile darstellt.
  • + (Pluszeichen): Eine Zeile, die nur in der neuen Datei vorhanden ist und eine hinzugefügte Zeile darstellt.
  • (Leerzeichen): Eine Zeile, die in beiden Dateien vorhanden ist und eine unveränderte Kontextzeile darstellt.

Verbindung mit dem Befehl patch

Die mit diff -u erzeugte Ausgabe kann als Eingabe für den Befehl `patch` verwendet werden. Dadurch können Änderungen einer Datei einfach auf eine andere Datei angewendet oder rückgängig gemacht werden. Zum Beispiel können Sie mit dem Befehl `diff -u old_file new_file > changes.patch` eine Patch-Datei erstellen und dann mit dem Befehl `patch -p0 < changes.patch` die Änderungen aus `changes.patch` auf `old_file` anwenden, um sie mit `new_file` identisch zu machen.


Verwandte Befehle

Funktional ähnliche oder häufig zusammen verwendete Befehle.


Gleiche Kategorie Befehle