Ü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.