So verwenden Sie Diff-Dateien unter Linux

Diff ist ein Befehlszeilentool für Unix-Systeme, mit dem Sie zwei Dateien oder Verzeichnisse vergleichen und die Unterschiede zwischen ihnen erkennen können. Es ist ideal zum Vergleichen alter und neuer Dateiversionen, um zu sehen, was sich geändert hat. In diesem Artikel zeigen wir Ihnen, wie Sie mit diff Dateien unter Linux einfach vergleichen können.
Tipp: Erfahren Sie, wie Sie Text, Dateien und Ordner im Linux-Terminal kopieren und einfügen.
Vergleichen von Dateien mit Diff
- Öffnen Sie ein Terminalfenster.
- Geben Sie diff und die Pfade zu zwei Dateien ein, die Sie vergleichen möchten. In diesem Fall vergleiche ich zwei kleine C-Programme auf meinem Desktop mit dem folgenden Befehl:
diff ~/Desktop/hello.c ~/Desktop/hello-1.c
- Drücken Sie die Eingabetaste, um den Befehl zu senden. Die resultierende Anzeige zeigt Ihnen alle verschiedenen Zeilen zwischen den Dateien. Verglichene Zeilennummern werden als „1c1“ angezeigt, was bedeutet, dass die erste Zeile geändert wurde und die folgenden Unterschiede festgestellt wurden.
- Um eine Nebeneinanderansicht der Dateien und ihrer Unterschiede anzuzeigen, verwenden Sie nach diff das Flag -y. Zum Beispiel:
diff -y ~/Desktop/hello.c ~/Desktop/hello-1.cJede Zeile mit einem Pipe-Symbol ( | ) ist eine Zeile mit einem Unterschied. Stellen Sie sicher, dass Sie zuerst Ihr Terminalfenster erweitern, da es sonst möglicherweise schwierig ist, die Anzeige zu sehen.
Gut zu wissen: Erfahren Sie, wie Sie die Ausgabe eines Programms mithilfe von Bash-Pipes und dem leistungsstarken Dienstprogramm sed manipulieren.
[enlazatom_show_links]Vergleichen von Dateien mit Meld
Auf die Funktionalität von diff kann auch über zugegriffen werden Melden, eine GUI für diff. Angesichts der Tatsache, dass die Benutzeroberfläche von Diff schwer zu handhaben sein kann, ist Meld ein nützliches Werkzeug.
- Installieren Sie Meld über die Befehlszeile, indem Sie das Terminal öffnen und Folgendes eingeben:
oder
für RPM-basierte Distributionen.
Dadurch wird der apt-Paketmanager initialisiert und mit der Installation von Meld begonnen. Beachten Sie, dass das Flag -y bei allen Eingabeaufforderungen automatisch „Ja“ sagt. Bitte entfernen Sie es, wenn Sie diese Eingabeaufforderungen lieber manuell bestätigen möchten.
- Geben Sie Ihr Administratorkennwort ein, wenn Sie dazu aufgefordert werden. Wenn Sie die Eingabeaufforderung erneut sehen, ist die Installation abgeschlossen und Meld kann geöffnet werden.
- Wenn Sie Meld öffnen, sehen Sie drei Optionen: Dateivergleich, Verzeichnisvergleich und Versionskontrollansicht. Klicken Sie auf „Datei“.
- Es erscheinen zwei Dropdown-Menüs mit der Aufschrift „(Keine)“. Klicken Sie auf eine Datei, um eine Datei zum Vergleich auszuwählen.
- Klicken Sie auf das andere Dropdown-Menü, um eine zweite Datei zum Vergleich auszuwählen.
- Klicken Sie auf die Schaltfläche „Vergleichen“.
- Das nächste Fenster fasst alle gefundenen Unterschiede zwischen zwei Dateien zusammen. Rote Zeichen stellen Unterschiede dar und der blaue Hintergrund zeigt an, dass es in dieser Zeile einen Unterschied gibt. Ein grüner Hintergrund zeigt an, dass eine Zeile in einer Datei vorhanden ist, in der anderen jedoch nicht.
- Um zwischen den Unterschieden zu navigieren, klicken Sie in der Menüleiste auf die Schaltflächen „Nach oben“ und „Nach unten“. Sie können auch direkt mit der Maus in das Dokument klicken.
Gut zu wissen: Wenn Sie zum Vergleichen von Dateien lieber Online-Tools verwenden möchten, finden Sie hier einige der besten Online-Tools zur Differenzprüfung.
Bearbeiten von Dateien in Meld
Meld bietet nicht nur die Möglichkeit, Vergleiche durchzuführen, sondern auch die Möglichkeit, verglichene Dateien zu ändern. Meld analysiert das Dokument weiterhin auf Änderungen, während Sie eine der Versionen ändern. Sie können die Änderungen jederzeit durch Drücken von Strg + Z rückgängig machen.
- Um Änderungen von einer Datei in eine andere zu kopieren, klicken Sie auf die kleinen schwarzen Pfeile zwischen den Änderungen. Wenn Sie beispielsweise auf den Pfeil auf der linken Seite klicken, wird die Zeile des linken Dokuments verwendet, um das Dokument auf der rechten Seite zu überschreiben.
- Zeilen können auch ohne Überschreiben in Dokumente eingefügt werden. Wenn Sie die Strg-Taste gedrückt halten, werden die Pfeile aus dem letzten Schritt zu Pluszeichen. Klicken Sie auf das Symbol, um ein kleines Dialogfeld zu öffnen, in dem Sie auswählen können, wo eine neue Zeile eingefügt werden soll.
- Geben Sie abschließend direkt in Ihr Dokument ein. Setzen Sie einfach wie gewohnt den Cursor ein und beginnen Sie mit der Eingabe.
- Wenn Sie mit den Änderungen fertig sind, klicken Sie auf die Schaltfläche „Speichern“, um Ihre Dateien zu speichern.
Erstellen von Diff-Dateien mit Meld und Diff
Neben der Anzeige der Unterschiede zwischen zwei Dateien können Sie mit Meld auch „Diff-Dateien“ erstellen. Hierbei handelt es sich um kleine Textabschnitte, die Anweisungen zum Übernehmen von Änderungen von einer Dateiversion auf eine andere enthalten. Dies ist nützlich, wenn Sie Codeaktualisierungen schnell verteilen möchten, ohne das gesamte Quellarchiv erneut freizugeben.
- Öffnen Sie die beiden Dateien, die Sie vergleichen möchten.
- Klicken Sie auf das Menü „Optionen“ in der oberen rechten Ecke des Fensters.
- Wählen Sie das Untermenü „Vergleich“.
- Klicken Sie auf die Unteroption „Als Patch formatieren“.
- Dadurch wird ein kleines Fenster geöffnet, in dem Meld die gesamte Diff-Datei zwischen Ihren beiden Dateien druckt. An dieser Stelle können Sie diesen Text entweder in Ihre Zwischenablage kopieren oder in einer Datei speichern. Klicken Sie dazu auf die Schaltfläche „Patch speichern“.
Während das Erstellen von Diff-Dateien in Meld einfach und unkompliziert ist, gibt es Fälle, in denen es möglicherweise nicht möglich ist, während der Codebearbeitung auf eine GUI zuzugreifen. Dazu können Sie auch das Diff-Programm verwenden, um eine Diff-Datei zu erstellen.
- Öffnen Sie ein Terminal und prüfen Sie, ob es Unterschiede zwischen den beiden Dateien gibt:
- Erstellen Sie eine einfache Diff-Datei mit dem Flag -c:
diff -c hello.c hello-1.c > hallo.diff
- Verwenden Sie optional die Option -u, die die beiden Textströme in einem einzigen einheitlichen Diff-Block kombiniert. Dies kann hilfreich sein, wenn Sie viel Code ändern und Speicherplatz sparen möchten:
diff -u hello.c hello-1.c > hallo.diffVerwenden von Diff-Dateien zum Patchen des Quellcodes
Wie oben erläutert, können Sie mit einer Diff-Datei eine leicht gemeinsam nutzbare Zusammenfassung der Änderungen an Ihrem Quellcode erstellen. Diff selbst kann diese jedoch nicht auf vorhandene Dateien anwenden. Verwenden Sie dazu das Begleitprogramm von diff, patch.
- Bestimmen Sie den ursprünglichen Quellcode, den die Diff-Datei zu ändern versucht:
- Erstellen Sie eine Sicherungskopie Ihres ursprünglichen Quellcodes:
- Führen Sie das Patch-Programm mit der Originaldatei für das erste Argument und der Diff-Datei für das zweite aus:
Es ist wichtig zu beachten, dass eine Diff-Datei auch Änderungen enthalten kann, die sich über mehrere Dateien erstrecken. Wenden Sie dies an, indem Sie alle für die Aktualisierung erforderlichen Dateien in einem einzigen Verzeichnis ablegen und patch < multi-file.diff ausführen.
- Überprüfen Sie, ob das Patch-Programm Ihre Quelldatei erfolgreich aktualisiert hat, indem Sie sie mit Ihrem Backup vergleichen:
diff -y hallo.c hallo.c.oldZu Ihrer Information: Git ist ein leistungsstarkes plattformübergreifendes Versionskontrollprogramm. Erfahren Sie, wie Sie damit Ihre Quellcode-Repositorys unter Linux verwalten können.
Häufig gestellte Fragen
Ist es möglich, eine Datei mehrmals zu patchen?
Ja. Es ist jedoch wichtig zu beachten, dass der Zeilennummernwert in einer Diff-Datei statisch ist. Wenn Sie beispielsweise einen Diff anwenden, der in Zeile 1 fünf Codezeilen hinzufügt, wird die gesamte Datei um fünf Zeilen angepasst. Während moderne Tools Änderungen einzelner Diffs kompensieren können, kann die Anwendung mehrerer Diffs zu unnötigen Codekonflikten führen.
Ist eine Diff-Datei einem Git-Patch ähnlich?
Ja. Sowohl diff als auch Git verwenden ein ähnliches Format für ihre Code-Patches. Dadurch können Sie die beiden Dienstprogramme austauschen, wenn Sie Aktualisierungen auf Ihren Quellcode anwenden. Das Ausführen von git apply hello.diff entspricht beispielsweise dem Ausführen von patch < hello.diff.
Können Sie Meld mit einem Versionskontrollprogramm wie Git verwenden?
Ja. Eine der leistungsstärksten Funktionen von Meld besteht darin, dass es transparent mit jedem Versionskontrollprogramm zusammenarbeiten kann. Dies gibt Ihnen die Möglichkeit, problemlos mit Ihren Repositorys außerhalb der Terminalschnittstelle zu interagieren.
Drücken Sie dazu Strg + N und klicken Sie dann auf die Schaltfläche „Versionskontrollansicht“. Klicken Sie anschließend auf das Dropdown-Feld darunter und wählen Sie „Andere“. Dadurch wird ein kleines Fenster geöffnet, in dem Sie Ihr Git-Repository sehen und laden können.
Schreibe einen Kommentar