Linux-Diff-Befehl

Linux Diff Befehl



Der Unterschied ist eher ein Konzept oder ein Gefühl, das eine Sache von einer anderen unterscheiden kann. Der Befehl „diff“ bezieht sich auf Variation. Durch die zeilenweise Analyse der Dokumente zeigt dieses Tool die Unterschiede zwischen den Dateien auf. Es informiert uns, welche Abschnitte in einem Dokument geändert werden müssen, um die Dokumente ähnlich zu erstellen, im Gegensatz zu seinen Begleitelementen cmp und comm. Der entscheidende Aspekt, den es zu beachten gilt, ist, dass diff bestimmte spezielle Symbole und Befehle verwendet, damit die Dokumente ähnlich sind. Sie erhalten Anweisungen zum Ändern des ersten Dokuments, damit es mit dem anderen Dokument übereinstimmt. In diesem Handbuch werden wir die Verwendung des Befehls „diff“ in Ubuntu 20.04 mit dem Linux-Terminal besprechen.

Wir haben zwei Textdateien im Arbeitsordner unseres Systems erstellt.









Es ist an der Zeit, die „diff“-Anweisung in einem Abfragebereich zu verwenden, um den Unterschied zwischen beiden Dateiinhalten anzuzeigen. Wir probieren diese „diff“-Anweisung mit beiden Dateinamen nacheinander aus, also zuerst one.txt und dann two.txt file. Die Ausführung des Befehls „diff“ zeigt uns den Unterschied zwischen beiden Dateien wie folgt:



  • Zeilennummern entsprechend der ersten Textdatei.
  • Sonderzeichen/Symbole, um uns über den Unterschied zu informieren, z. B. ändern, hinzufügen, löschen.
  • Zeilennummern gemäß der zweiten Textdatei.

In unserer ersten Illustration erläutern wir das „a“-Symbol unter den Zeilennummern der „diff“-Befehlsausgabe; „a“ wird als Abkürzung für „Add“ verwendet. Die Verwendung der „cat“-Anweisung mit beiden Dateinamen im Abfragebereich zeigt den Inhalt in jeder Textdatei separat an, d. h. one.txt und two.txt. Wir haben insgesamt 4 Zeilen in der ersten Datei, während die zweite Datei 5 Zeilen enthält. Zeile 1 ist extra.





Dann versuchen wir die Anweisung „diff“ im Abfragebereich des Terminals, gefolgt von den Namen der Dateien – one.txt und two.txt. Die Ausführung dieser Anweisung zeigt „0a1“ als Ausgabe zusammen mit Zeile 1 aus der zweiten Datei, die eine zusätzliche Zeile in der zweiten Datei ist. Der Zahlenwert „0“ wird für Zeile 0 oder vor Zeile 1 der ersten Datei, also one.txt, verwendet. Das Symbol „a“ bedeutet „hinzufügen“. Der Zahlenwert „1“ schließlich bedeutet die erste Zeile der zweiten Datei. Die Mix-Ausgabe „0d1“ bedeutet, dass die Zeile 1 der zweiten Datei „two.txt“ am Anfang der ersten Datei „one.txt“ hinzugefügt werden sollte, bevor die erste Zeile zwei beide Dateien gleich macht.



Jetzt aktualisieren wir beide Dateien, um eine andere Abbildung zu sehen. Die erste Datei „one.txt“ enthält 4 Zeilen und die zweite Datei „two.txt“ enthält nur 3 Zeilen. Der einzige Unterschied für diese Dateien ist die Verwendung einer zusätzlichen Zeile in der ersten Datei, d. h. Zeile 1 = „Montag“, die sich nicht in der zweiten Datei befindet. Nachdem wir die „diff“-Anweisung für die aktualisierten Textdateien ausprobiert haben, erhalten wir „1d0“ als Ausgabe. Und die erste Zeile der ersten Datei wird angezeigt. Bei „1d0“ bedeutet 1, dass die erste Zeile aus der Datei „one.txt“ gelöscht werden soll (entsprechend dem Symbol „d“), und 0 bedeutet, dass die zweite Datei kein Update erhalten hat. Am Ende wird die Zeile 1 aus der ersten Datei „one.txt“ für den deutlichen Unterschied angezeigt.

Ebenso kann der Befehl „diff“ einen Unterschied zwischen den Zeilen zweier Dateien anzeigen. Daher aktualisieren wir beide Textdateien noch einmal. Dieses Mal enthält die erste Datei 5 Zeilen, während die zweite Datei nur 4 enthält. Der einzige Unterschied besteht in der Verwendung einer zusätzlichen Zeile in one.txt, nämlich Zeile 3. Der diff-Befehl, der für beide Dateien im Terminal verwendet wird, zeigt an geben Sie „3d2“ zusammen mit Zeile 3 aus der ersten Datei „one.txt“ aus. Diese Ausgabe zeigt, dass Zeile 3 aus der ersten Datei „one.txt“ gelöscht werden sollte, damit wir beide Dateien in Zeile 2 der zweiten Datei synchronisieren können. Die unterschiedliche Linie „3“ wird angezeigt, damit wir uns eine klare Vorstellung von dem Unterschied machen können.

Lassen Sie uns einen klaren und tieferen Blick auf die Ausgabe werfen. Die 1,5c1,2-Ausgabe aus dem folgenden Bild zeigt, dass die Zeilen 1 bis 5 einer ersten Datei (one.txt) durch die Zeilen 1 bis 2 einer zweiten Datei (two.txt) ersetzt werden sollten. Das bedeutet, dass die ersten 5 Zeilen (1 bis 5) der one.txt-Datei geändert und durch die ersten beiden Zeilen (1, 2) der zweiten Datei „two.txt“ ersetzt werden sollten, um sie gleich zu machen. Am Ende werden alle 5 Zeilen der ersten Datei angezeigt, die durch die angezeigten 2 Zeilen der zweiten Datei ersetzt werden sollten. So zeigt das Symbol „c“ den Unterschied zwischen zwei Dateien an – in beiden Dateien ist keine Zeile gleich.

Der Befehl „diff“ ermöglicht es Ihnen, seine Ausgabe in einem Kontextformular zu erhalten. Stellen Sie sich vor, Sie haben die gleichen zwei Dateien mit den folgenden Daten in diesen Dateien. Der Kontext um die Ausgabe herum würde darin bestehen, den Hauptunterschied zwischen den gesamten einfachen Dateien anzuzeigen, die im folgenden Bild gezeigt werden. Jetzt haben wir 5 Zeilen in der ersten Datei „one.txt“ und 4 Zeilen in der zweiten Datei „two.txt“.

Um die kontextbasierte Ausgabe der „diff“-Anweisung zu erhalten, müssen wir die „-c“-Option innerhalb des „diff“-Befehls verwenden. Unter Verwendung der zuvor aktualisierten Dateien in diesem „diff“-Befehl erhalten wir die folgende Ausgabe – Datum, Tag, zusammen mit den zusätzlichen Informationen zur Texterstellung in den Dateien. Die 5 Zeilen aus den one.txt-Dateien werden angezeigt. Insbesondere wird die dritte Zeile mit dem Zeichen „-“ hervorgehoben, um sie einfach einer anderen Datei hinzuzufügen.

Fazit

Wir haben versucht, kurz alles über die „diff“-Anweisung zu erklären. Dafür haben wir unsere Textdateien jedes Mal aktualisiert und eine aktualisierte Ausgabe zum Hinzufügen, Entfernen und Ändern der Daten in einer Datei erhalten. Die Einführung erläuterte den Zweck der Verwendung des Befehls „diff“ unter Linux und wie man ihn für Linux verwendet.