So verwenden Sie Diff-Dateien unter Linux

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 sehen können. Es ist ideal, um alte und neue Versionen von Dateien zu vergleichen, um zu sehen, was sich geändert hat. In diesem Artikel zeigen wir Ihnen, wie Sie diffDateien unter Linux einfach vergleichen können.

Vergleichen von Dateien mit diff

  • Öffnen Sie ein Terminalfenster.
  • Geben Sie diffund 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

Ein Terminalfenster mit einem Diff-Befehl.
  • Drücken Sie , Enterum 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 gefunden wurden.
Ein Terminalfenster, das die Ausgabe eines diff-Befehls zeigt.
  • Um eine Seite-an-Seite-Ansicht der Dateien und ihrer Unterschiede anzuzeigen, verwenden Sie das -yFlag nach diff. Zum Beispiel:

diff -y ~/Desktop/hello.c ~/Desktop/hello-1.c

Ein Terminalfenster, das einen Befehl zeigt, der ein visuelles Diff druckt.

Jede Zeile mit einem Pipe-Symbol ( |) ist eine Zeile mit einem Unterschied. Stellen Sie nur sicher, dass Sie zuerst Ihr Terminalfenster erweitern, da Sie sonst möglicherweise Schwierigkeiten haben, die Anzeige zu sehen.

Ein Terminalfenster, das die Ausgabe eines visuellen Diff-Befehls zeigt.

Vergleichen von Dateien mit Meld

Auf die Funktionalität von kann auch über Melddiff zugegriffen werden , eine GUI für . In Anbetracht dessen, dass die Benutzeroberfläche von diff schwer zu handhaben sein kann, ist Meld ein nützliches Werkzeug.diff

  • Installieren Sie Meld über die Befehlszeile, indem Sie das Terminal öffnen und Folgendes eingeben:

sudo apt -y install meld

oder

sudo dnf -y install meld

für RPM-basierte Distributionen.

Dadurch wird der apt-Paketmanager initialisiert und mit der Installation von Meld begonnen. Beachten Sie, dass das -yFlag automatisch „Ja“ zu allen Eingabeaufforderungen sagt; Bitte entfernen Sie es, wenn Sie diese Eingabeaufforderungen lieber manuell bestätigen möchten.

Ein Terminalfenster, das den Installationsbefehl für Meld zeigt.
  • Geben Sie Ihr Admin-Passwort ein, wenn Sie dazu aufgefordert werden. Wenn Sie die Eingabeaufforderung erneut sehen, ist die Installation abgeschlossen und Meld kann geöffnet werden.
Ein Terminalfenster, das den Installationsprozess für Meld zeigt.
  • Wenn Sie Meld öffnen, sehen Sie drei Optionen: Dateivergleich, Verzeichnisvergleich und Versionskontrollansicht. Klicken Sie auf „Datei“.
Ein Screenshot des Begrüßungsbildschirms von Meld.
  • Es erscheinen zwei Dropdown-Menüs mit der Aufschrift „(None)“. Klicken Sie auf eine, um eine Datei zum Vergleich auszuwählen.
Ein Screenshot des Meld-Bildschirms mit einer Markierung auf der ersten Dateiauswahl.
  • Klicken Sie auf das andere Dropdown-Menü, um eine zweite Datei zum Vergleich auszuwählen.
Ein Screenshot des Meld-Bildschirms mit einer Hervorhebung auf der zweiten Dateiauswahl.
  • Klicken Sie auf die Schaltfläche „Vergleichen“.
Ein Screenshot des Bildschirms „Melden“ mit Hervorhebung der Schaltfläche „Vergleichen“.
  • Das nächste Fenster fasst alle gefundenen Unterschiede zwischen zwei Dateien zusammen. Rote Zeichen sind Unterschiede, 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 existiert, aber nicht in der anderen.
Ein Screenshot des Meld-Programms mit einer einfachen Vergleichsansicht von zwei Dateien.
  • 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.
Ein Screenshot des Meld-Programms, das die Diff-Navigationsschaltfläche hervorhebt.

Bearbeiten von Dateien in Meld

Zusätzlich zum Vergleichen ermöglicht Ihnen Meld, verglichene Dateien zu ändern. Meld analysiert das Dokument weiterhin auf Änderungen, während Sie eine der Versionen ändern, und Sie können jederzeit Ctrl+ drücken, um die Änderungen rückgängig zu machen.Z

  • 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.
Ein Screenshot des Meld-Programms mit den Diff-Auflösungsschaltflächen.
  • Zeilen können auch ohne Überschreiben in Dokumente eingefügt werden. Wenn Sie die Taste gedrückt halten Ctrl, sehen Sie, wie sich die Pfeile aus dem letzten Schritt in Pluszeichen verwandeln. 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.
Ein Screenshot des Meld-Programms, das die Diff-Hinzufügungsaufforderung zeigt.
  • Geben Sie schließlich direkt in Ihr Dokument ein. Setzen Sie einfach Ihren Cursor wie gewohnt 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.
Ein Screenshot des Meld-Programms, das die Schaltfläche zum Speichern pro Datei hervorhebt.

Erstellen von Diff-Dateien mit Meld und Diff

Abgesehen davon, dass Sie die Unterschiede zwischen zwei Dateien anzeigen, können Sie mit Meld auch „Diff-Dateien“ erstellen. Dies sind kleine Textstücke, die Anweisungen enthalten, wie Änderungen von einer Dateiversion auf eine andere angewendet werden können. 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.
Ein Screenshot des Meld-Programms, das ein einfaches Diff zeigt.
  • Klicken Sie auf das Menü Optionen in der oberen rechten Ecke des Fensters.
Ein Screenshot, der die Optionsschaltfläche von Meld hervorhebt.
  • Wählen Sie das Untermenü „Vergleich“.
Ein Screenshot des Optionsmenüs von Meld mit einer Hervorhebung des Untermenüs „Vergleich“.
  • Klicken Sie auf die Unteroption „Als Patch formatieren“.
Ein Screenshot des Untermenüs „Vergleich“ mit Hervorhebung der Unteroption „Format“.
  • Dies öffnet ein kleines Fenster, 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. Um Letzteres zu tun, klicken Sie auf die Schaltfläche „Patch speichern“.
Ein Screenshot des Meld's Patch-Unterfensters mit einer Hervorhebung auf dem

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 mit dem diffProgramm auch eine Diff-Datei generieren.

  • Öffnen Sie ein Terminal und prüfen Sie, ob es Unterschiede zwischen den beiden Dateien gibt:

diff hello.c hello-1.c

Ein Terminal, das einen einfachen Unterschied zwischen zwei Dateien zeigt.
  • Erstellen Sie eine einfache Diff-Datei, indem Sie das -cFlag verwenden:

diff -c hello.c hello-1.c > hello.diff

Ein Terminal, das eine einfache Diff-Dateiausgabe zeigt.
  • Verwenden Sie optional die -uOption, die die beiden Textströme zu 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 > hello.diff

Ein Terminal, das eine komplexere vereinheitlichte Diff-Ausgabe zeigt.

Verwenden von Diff-Dateien zum Patchen des Quellcodes

Wie oben besprochen, 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.

  • Ermitteln Sie den ursprünglichen Quellcode, den die Diff-Datei zu ändern versucht:

cat hello.diff | sed 1q

Ein Terminal, das den Header der ursprünglichen Quelldatei anzeigt.
  • Erstellen Sie ein Backup Ihres ursprünglichen Quellcodes:

cp hello.c hello.c.old

  • Führen Sie das Patch-Programm mit der Originaldatei für das erste Argument und der Diff-Datei für das zweite aus:

patch hello.c hello.diff

Ein Terminal, das einen einfachen Patch-Befehl für eine einzelne Quelldatei zeigt.

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 ausführen patch < multi-file.diff.

  • Überprüfen Sie, ob das Patch-Programm Ihre Quelldatei erfolgreich aktualisiert hat, indem Sie sie mit Ihrem Backup vergleichen:

diff -y hello.c hello.c.old

Ein Terminal, das den visuellen Unterschied zwischen der neuen und der ursprünglichen Quelldatei zeigt.

FYI: Git ist ein leistungsstarkes plattformübergreifendes Versionskontrollprogramm. Erfahren Sie, wie Sie damit Ihre Quellcode-Repositories unter Linux verwalten können.

Häufig gestellte Fragen

Ist es möglich, eine Datei mehrfach zu patchen?

Ja. Es ist jedoch wichtig zu beachten, dass der Wert der Zeilennummer in einer Diff-Datei statisch ist. Wenn Sie beispielsweise einen Unterschied anwenden, der fünf Zeilen Code in Zeile 1 hinzufügt, wird die gesamte Datei um fünf Zeilen angepasst. Während moderne Tools Änderungen von einzelnen Diffs kompensieren können, kann die Anwendung von mehr als einem unnötige Codekonflikte verursachen.

Ist eine Diff-Datei einem Git-Patch ähnlich?

Ja. Sowohl diff als auch Git verwenden ein ähnliches Format für ihre Code-Patches. Daher können Sie die beiden Dienstprogramme austauschen, wenn Sie Aktualisierungen auf Ihren Quellcode anwenden. Laufen ist beispielsweise git apply hello.diffgleichbedeutend mit Laufen patch < hello.diff.

Können Sie Meld mit einem Versionskontrollprogramm wie Git verwenden?

Ja. Eine der leistungsstärksten Funktionen von Meld ist, dass es transparent mit jedem Versionskontrollprogramm zusammenarbeiten kann. Dies gibt Ihnen die Möglichkeit, außerhalb der Terminalschnittstelle einfach mit Ihren Repositories zu interagieren.

Drücken Sie dazu Ctrl+ Nund klicken Sie dann auf die Schaltfläche „Versionskontrollansicht“. Klicken Sie als Nächstes 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.

Bildnachweis: Unsplash . Alle Screenshots von Ramces Red.

Schreibe einen Kommentar

Deine E-Mail-Adresse wird nicht veröffentlicht. Erforderliche Felder sind mit * markiert