In diesem Handbuch erfahren Sie, wie Sie mit Linux zwei Dateien vergleichen und ihre Unterschiede auf dem Bildschirm oder in einer Datei ausgeben.
Sie müssen keine spezielle Software installieren, um Dateien mit Linux vergleichen zu können. Sie müssen jedoch wissen, wie ein Terminalfenster geöffnet wird.
Wie der verlinkte Leitfaden zeigt, gibt es viele Möglichkeiten, ein Terminalfenster mit Linux zu öffnen. Am einfachsten ist es, gleichzeitig die Tasten STRG, ALT und T zu drücken.
Erstellen der zu vergleichenden Dateien
Um diesem Handbuch zu folgen, erstellen Sie eine Datei mit dem Namen "file1" und geben Sie den folgenden Text ein:
10 grüne Flaschen stehen an der Wand
10 grüne Flaschen stehen an der Wand
Wenn eine grüne Flasche versehentlich fallen sollte
Es würden 9 grüne Flaschen an der Wand stehen
Sie können eine Datei erstellen, indem Sie diese Anweisungen befolgen:
-
Öffnen Sie die Datei, indem Sie den folgenden Befehl eingeben: nano file1
-
Geben Sie den Text in den Nano-Editor ein
-
Drücken Sie STRG und O, um die Datei zu speichern
-
Drücken Sie STRG und X, um die Datei zu verlassen
Erstellen Sie nun eine weitere Datei mit dem Namen "file2" und geben Sie den folgenden Text ein:
10 grüne Flaschen stehen an der Wand
Wenn 1 grüne Flasche versehentlich fallen sollte
Es würden 9 grüne Flaschen an der Wand stehen
Sie können eine Datei erstellen, indem Sie diese Anweisungen befolgen:
-
Öffnen Sie die Datei, indem Sie den folgenden Befehl eingeben: Nano-Datei2
-
Geben Sie den Text in den Nano-Editor ein
-
Drücken Sie STRG und O, um die Datei zu speichern
-
Drücken Sie STRG und X, um die Datei zu verlassen
So vergleichen Sie zwei Dateien mit Linux
Der Befehl, der in Linux zum Anzeigen der Unterschiede zwischen zwei Dateien verwendet wird, wird als diff-Befehl bezeichnet.
Die einfachste Form des Diff-Befehls lautet wie folgt:
diff file1 file2
Wenn die Dateien gleich sind, wird bei Verwendung dieses Befehls keine Ausgabe ausgegeben. Da es jedoch Unterschiede gibt, werden Sie eine Ausgabe ähnlich der folgenden sehen:
2,4c2,3
<10 grüne Flaschen stehen an der Wand
<Wenn eine grüne Flasche versehentlich fallen sollte
<Es würden 9 grüne Flaschen an der Wand stehen
…
> Wenn 1 grüne Flasche versehentlich fallen sollte
> Es würden 9 grüne Flaschen an der Wand stehen
Anfangs mag die Ausgabe verwirrend erscheinen, aber sobald Sie die Terminologie verstanden haben, ist sie ziemlich logisch.
Mit eigenen Augen können Sie feststellen, dass sich die beiden Dateien wie folgt unterscheiden:
- Die zweite Datei hat nur drei Zeilen, während die erste Datei 4 Zeilen hat.
- Die zweite Datei sagt "1 grüne Flasche" in der dritten Zeile, während die erste Datei "eine grüne Flasche" sagt
- Die zweite Datei sagt "there'd" statt "there would" in der letzten Zeile
Die Ausgabe des Befehls diff zeigt, dass zwischen den Zeilen 2 und 4 der ersten Datei und den Zeilen 2 und 3 der zweiten Datei Unterschiede bestehen.
Anschließend werden die Zeilen von 2 bis 4 aus der ersten Datei aufgeführt, gefolgt von den zwei verschiedenen Zeilen in der zweiten Datei.
So zeigen Sie einfach, ob die Dateien unterschiedlich sind
Wenn Sie nur wissen möchten, ob sich die Dateien unterscheiden und Sie nicht daran interessiert sind, welche Zeilen sich unterscheiden, können Sie den folgenden Befehl ausführen:
diff -q Datei1 Datei2
Wenn die Dateien unterschiedlich sind, wird Folgendes angezeigt:
Die Dateien file1 und file2 unterscheiden sich
Wenn die Dateien gleich sind, wird nichts angezeigt.
So zeigen Sie eine Nachricht an, wenn die Dateien gleich sind
Wenn Sie einen Befehl ausführen, möchten Sie wissen, dass er ordnungsgemäß funktioniert hat. Wenn Sie den Befehl diff ausführen, wird eine Meldung angezeigt, unabhängig davon, ob die Dateien gleich oder verschieden sind
Um diese Anforderung mit dem Befehl diff zu erreichen, können Sie den folgenden Befehl verwenden :.
diff -s file1 file2
Wenn nun die Dateien gleich sind, erhalten Sie folgende Meldung:
Die Dateien file1 und file2 sind identisch
Wie man die Unterschiede nebeneinander herstellt
Wenn es viele Unterschiede gibt, kann es sehr schnell verwirrend werden, welche Unterschiede zwischen den beiden Dateien bestehen.
Sie können die Ausgabe des Befehls diff ändern, sodass die Ergebnisse nebeneinander angezeigt werden. Führen Sie dazu den folgenden Befehl aus:
diff -y file1 file2
Die Ausgabe für die Datei verwendet das | Ein Symbol zeigt den Unterschied zwischen den beiden Zeilen an, ein <zeigt eine entfernte Zeile an und ein> zeigt eine angefügte Zeile an.
Wenn Sie den Befehl mit unseren Demonstrationsdateien ausführen, werden alle Zeilen als unterschiedlich angezeigt, mit Ausnahme der letzten Zeile der Datei 2, die als gelöscht angezeigt wird.
Spaltenbreiten einschränken
Beim Vergleich zweier Dateien nebeneinander kann es schwierig sein, zu lesen, wenn die Dateien viele Textspalten enthalten.
Um eine Anzahl von Spalten einzuschränken, verwenden Sie den folgenden Befehl:
So ignorieren Sie Fallunterschiede beim Vergleichen von Dateien
Wenn Sie zwei Dateien vergleichen möchten, es Ihnen aber egal ist, ob die beiden Buchstaben gleich sind, können Sie den folgenden Befehl verwenden:
Ignorierende Leerzeichen am Ende einer Zeile ignorieren
Wenn Sie beim Vergleichen der Dateien feststellen, dass Unterschiede vorhanden sind, und die Unterschiede durch Leerzeichen am Ende der Zeilen verursacht werden, können Sie diese als Änderungen anzeigen, indem Sie den folgenden Befehl ausführen:
So ignorieren Sie alle Leerraumunterschiede zwischen zwei Dateien
Wenn Sie nur an dem Text in einer Datei interessiert sind und es Ihnen egal ist, ob in einem der Felder mehr Leerzeichen enthalten sind, können Sie den folgenden Befehl verwenden:
So ignorieren Sie leere Zeilen beim Vergleich zweier Dateien
Wenn es Ihnen egal ist, dass eine Datei zusätzliche Leerzeilen enthält, können Sie die Dateien mit dem folgenden Befehl vergleichen:
Zusammenfassung
Weitere Informationen finden Sie in der Anleitung zum Befehl diff.
Mann Diff
Der diff-Befehl kann in seiner einfachsten Form verwendet werden, um nur die Unterschiede zwischen zwei Dateien anzuzeigen, Sie können ihn aber auch zum Erstellen einer diff-Datei als Teil einer Patch-Strategie verwenden, wie in diesem Handbuch zum Linux-Patch-Befehl gezeigt.
Ein anderer Befehl, den Sie zum Vergleichen von Dateien verwenden können, ist der Befehl cmp, wie in dieser Anleitung gezeigt. Dies vergleicht Dateien byteweise.