So vergleichen Sie zwei Dateien unter Linux

How Compare Two Files Linux



Wenn Sie zwei Dateien vergleichen und den Unterschied entziffern möchten, gibt es einen Befehl namens unterschied wird genutzt. Dieser Leitfaden konzentriert sich darauf, Ihnen die Verwendung der unterschied Befehl mit verschiedenen Optionen, um den Unterschied zwischen zwei Dateien zu ermitteln.

Also, wie funktioniert das? unterschied Befehl funktioniert eigentlich? Die unterschied Der Befehl vergleicht die beiden Dateien und gibt eine Liste der Unterschiede zwischen beiden Dateien aus. Genauer gesagt liefert es eine Liste von Änderungen, die in der ersten Datei vorgenommen werden müssen, damit sie mit der zweiten Datei übereinstimmt. Die unterschied Der Befehl wird auch von den Programmierern verwendet, um den Unterschied zwischen zwei Quellcodedateien zu ermitteln, um Patches zu entwickeln.







Beachten Sie vor dem Eintauchen in die Beispiele, dass die Reihenfolge der Dateien sehr wichtig ist. Weil das unterschied Befehl gibt eine Ausgabe basierend auf der Reihenfolge der Dateien aus.



So verwenden Sie den diff-Befehl in Linux zum Vergleichen von Dateien:

Die Syntax des unterschied Befehl wird unten erwähnt:



$unterschied [Optionen] [Datei1] [Datei2]

Erstellen Sie zunächst zwei Dateien. Ich erstelle Textdateien mit dem Namen von test_file_1.txt und test_file_2.txt . Diese Dateien enthalten Inhalte mit einem kleinen Unterschied:





Verwenden Sie nun den folgenden Befehl, um den Unterschied zu ermitteln:



$unterschiedtest_file_1.txt test_file_2.txt

In der Standardausgabe wurden die Zeilen angezeigt, die der Reihenfolge der im Befehl angegebenen Dateien entsprechen. Decodieren wir also die Ausgabe:

Der Vergleich der Dateien ist beschriftet, und jedes Etikett hat auf beiden Seiten eine Nummer. Das Format ist wie folgt:

[Zeilennummer der Datei 1][Label(a,c,d)][Zeilennummer der Datei 2]

Es gibt drei Etiketten:

  • zu – Hinzufügen: Fügen Sie Inhalte in der ersten Datei hinzu, um sie mit der zweiten Datei zu synchronisieren.
  • C – Ändern: Zeigt an, dass eine Änderung des Inhalts der ersten Datei erforderlich ist, damit sie mit der zweiten Datei übereinstimmt.
  • D – Löschen: Inhalte aus der ersten Datei entfernen, um sie mit der zweiten abzugleichen.

2d1 gibt an, die Zeile Nummer 2 der ersten Datei zu löschen, damit sie der zweiten Datei aus Zeile 1 entspricht.

Ähnlich, 4c3 bedeutet, dass die vierte Zeile der ersten Datei geändert wird, damit sie mit der Zeilennummer 3 der zweiten Datei übereinstimmt, da sich beide Zeilen geringfügig unterscheiden.

Es gibt eine andere Methode, um den Unterschied anzuzeigen, verwenden Sie die unterschied Befehl mit dem -und Möglichkeit:

$unterschied -und -IN 60test_file_1.txt test_file_2.txt

In der obigen Ausgabe ist der Inhalt von test_file_1.txt wird auf der linken Seite angezeigt, während der Inhalt von text_file_2.txt wird auf der rechten Seite angezeigt. Der Unterschied wird durch die Symbole angezeigt:

  • | — Zeile ist in der zweiten Datei anders
  • > — Zeile ist in der zweiten Datei zusätzlich
  • <— Line has been deleted from the second file

Das -W gibt die Breite zwischen dem Inhalt zweier Dateien an. Verwenden Sie Folgendes, um separat zu erhalten und den Unterschied anzuzeigen:

$unterschied -und -IN 60 --unterdrücke-gemeinsame-Linientest_file_1.txt test_file_2.txt

So erhalten Sie mit dem Befehl diff eine Ausgabe in einer Zeile:

Wenn die beschriftete Methode für Sie schwer zu decodieren ist, gibt es einen einfacheren Ansatz. Verwendung der -Q Option mit der unterschied Befehl gibt Ihnen eine Ausgabe in einer Zeile. Aber ohne weitere Informationen:

$unterschied -Qtest_file_1.txt test_file_2.txt

Wenn sich die Dateien unterscheiden, gibt der obige Befehl eine Ausgabe aus. Sind die Dateien identisch, erfolgt keine Ausgabe. Um es zu demonstrieren, erstelle ich eine Kopie von test_file_1.txt Verwendung:

$cptest_file_1.txt test_file_3.txt

Es wird eine neue Datei mit dem Namen erstellt test_file_3.txt den gleichen Inhalt enthalten wie test_file_1.txt hat. Jetzt benutzen:

$unterschied -Qtest_file_1.txt test_file_2.txt

Da beide Dateien einen ähnlichen Inhalt haben, würde daher keine Ausgabe erfolgen.

So überprüfen Sie den Unterschied von Dateien im Kontextmodus mit dem diff-Befehl:

Um den Vergleich im Kontextmodus zu erhalten, -C Option wird mit dem verwendet unterschied Befehl:

$unterschied -Ctest_file_1.txt test_file_2.txt

Lassen Sie uns die Ausgabe analysieren.

Um den Unterschied beizubehalten, wird die erste Datei mit *** zusammen mit Datum und Uhrzeit der Erstellung gekennzeichnet, während die zweite Datei mit — gekennzeichnet ist.

Die nächste Zeile bezeichnet eine Reihe von Zeilen, die beim Vergleich berücksichtigt wurden. Für die erste Datei ist es *** 1,6 **** und für die zweite Datei ist es —1,5—- :

Der Unterschied wird durch die Symbole angezeigt:

  • + : Zeile ist in der ersten Datei nicht vorhanden. Fügen Sie es in die erste Datei ein oder entfernen Sie es aus der zweiten Datei, um beide Dateien abzugleichen.
  • – : Die Zeile existiert in der ersten Datei, aber nicht in der zweiten Datei. Versuchen Sie, es in die zweite Datei einzufügen oder aus der ersten zu entfernen, damit beide Dateien übereinstimmen.
  • ! : Zeile muss geändert werden, damit sie übereinstimmt.

So überprüfen Sie den Unterschied von Dateien im einheitlichen Modus mit dem Befehl diff:

Der vereinheitlichte Modus ist dem Kontextmodus ziemlich ähnlich, jedoch ohne redundante Informationen. Die Flagge, die wir verwenden, ist -u :

$unterschied -utest_file_1.txt test_file_2.txt

In der Ausgabe ist die erste Datei mit — und die zweite mit +++ gekennzeichnet. Die zweite Zeile zeigt die Anzahl der zum Vergleich in Betracht gezogenen Zeilen in beiden Dateien, dann die zu löschenden, hinzuzufügenden oder zu ändernden Inhalte mit den dazugehörigen Symbolen. In beiden Dateien gibt es kein Symbol mit ähnlichen Zeilen.

So ignorieren Sie die Groß-/Kleinschreibung bei der Verwendung des diff-Befehls:

Wenn Sie die Dateien ohne Berücksichtigung der Groß-/Kleinschreibung vergleichen möchten, verwenden Sie die -ich Flagge:

$unterschied -ichtest_file_1.txt test_file_2.txt

Zur Demonstration habe ich die D von Deepin in der ersten Datei klein:

Wie im ersten Befehl zu sehen ist, wird der Unterschied angezeigt; während dem Benutzen -ich dieser Unterschied wurde entfernt.

Einige andere nützliche Optionen des unterschied Befehl sind unten aufgeführt:

Möglichkeit Beschreibung
-zu Diese Option behandelt alle Dateien als Textdateien
-B Es ignoriert Änderungen, bei denen alle Zeilen leer sind
-UND Diese Option ignoriert die Tab-Erweiterung
-ICH Es ignoriert die Änderungen, bei denen alle Zeilen übereinstimmen
-S Gibt eine Ausgabe aus, wenn zwei Dateien identisch sind
-in Es ignoriert alle Leerzeichen
-MIT Es ignoriert Leerzeichen am Zeilenende

So verwenden Sie den Vim-Editor, um zwei Dateien zu vergleichen:

Eine andere Methode zum Vergleichen zweier Dateien ist die Verwendung der vimdiff Befehl. Dazu muss vim installiert sein:

$sudogeeignetInstallieren ich kam

Um nun zwei Dateien zu vergleichen, verwenden Sie:

$vimdiff test_file_1.txt test_file_2.txt

Beide Dateien werden nebeneinander geöffnet. Der nicht übereinstimmende Teil wird hervorgehoben:

So vergleichen Sie zwei Dateien mit colordiff:

Ein anderer Ansatz ist eine Art Erweiterung der unterschied Befehl. Sie können den Vergleich besser erkennen, indem Sie ihm Farben hinzufügen. Zur Installation verwenden Sie:

$sudogeeignetInstallierenFarbunterschied

Um Dateien zu vergleichen, verwenden Sie:

$colordiff test_file_1.txt test_file_2.txt

Sie können ersetzen unterschied mit Farbunterschied um die Standardausgabe des zu erhalten unterschied Befehl im farbigen Format.

Abschluss:

Um Dateien in Linux und sogar in macOS zu vergleichen, wird ein Dienstprogramm namens diff verwendet. Das Dienstprogramm diff vergleicht zwei Dateien und gibt Informationen zu den Unterschieden zwischen den beiden Dateien. Die Entwickler verwenden den diff-Befehl hauptsächlich zum Erstellen von Patch-Dateien.

In diesem Leitfaden haben wir ausführlich die unterschied Befehl und wie man ihn verwendet, um zwei Dateien mit unterschiedlichen Optionen zu vergleichen. Wir haben auch gelernt, wie man es benutzt Farbunterschied um die Dateiunterschiede besser erkennbar zu machen. Wenn Sie jedoch feststellen, dass ein terminalbasiertes Dienstprogramm schwer zu verwenden ist, gibt es auch einige GUI-basierte Tools wie Kompare, DiffMerge, Meld – Diff Tool und Diffuse – GUI Giff Tool.