GNU/Linux >> LINUX-Kenntnisse >  >> Linux

So verwenden Sie den Linux-diff-Befehl

Einführung

Der Linux-diff Der Befehl wird verwendet, um zwei Dateien Zeile für Zeile zu vergleichen und den Unterschied zwischen ihnen anzuzeigen. Dieses Befehlszeilendienstprogramm listet Änderungen auf, die Sie anwenden müssen, um die Dateien identisch zu machen.

Lesen Sie weiter, um mehr über diff zu erfahren Befehl und seine Optionen mit leicht verständlichen Beispielen.

diff-Syntax

Die Syntax für die Verwendung von diff Befehl ist:

diff [option] file1 file2

Ausgabesyntax

Beim Arbeiten mit diff , ist es entscheidend zu wissen, wie die Ausgabe zu interpretieren ist, die aus Folgendem besteht:

  • Ausgabe beginnend mit < bezieht sich auf den Inhalt in der ersten Datei.
  • Ausgabe beginnend mit > bezieht sich auf den Inhalt in der zweiten Datei.
  • Zeilennummern, die der ersten Datei entsprechen.
  • Ein besonderes Symbol. Spezielle Symbole zeigen an, wie die erste Datei bearbeitet werden muss, damit sie mit der zweiten Datei übereinstimmt. Die Ausgabe kann Folgendes anzeigen:
    • a (hinzufügen)
    • c (ändern)
    • d (löschen)
  • Zeilennummern, die der zweiten Datei entsprechen.

diff-Beispiel

Um zu zeigen, wie der diff funktioniert, haben wir zwei Beispieldateien erstellt und deren Inhalt verglichen.

Zwei Beispieldateien erstellen

1. Erstellen Sie zunächst mit dem Terminal eine Linux-Datei mit dem Namen example1.txt . Wir verwenden den Nano-Texteditor, aber Sie können einen Texteditor Ihrer Wahl verwenden.

sudo nano example1.txt

2. Nachdem der Texteditor die Datei erstellt und geöffnet hat, fügen Sie ihr die folgenden Zeilen hinzu:

Apple
Orange
Banana
Watermelon
Chery

3. Speichern und beenden Sie die Datei – halten Sie Strg gedrückt + X und bestätigen Sie mit Y .

4. Als nächstes erstellen Sie eine example2.txt Datei durch Ausführen von:

sudo nano example2.txt

5. Fügen Sie der Datei folgenden Inhalt hinzu:

Orange
Peach
Apple
Banana
Melon
Cherry

6. Speichern Sie die Änderungen und beenden Sie.

Vergleichen Sie die Dateien mit dem diff-Befehl

1. Wenn die beiden Beispieldateien vorhanden sind, verwenden Sie diff Befehl, um zu sehen, wie sie sich unterscheiden und wie man sie identisch macht:

diff example1.txt example2.txt 

Die Ausgabe enthält Anweisungen zum Ändern der ersten Datei, sodass sie denselben Inhalt wie in example2.txt hat . Schauen wir uns die Ausgabe für die Beispieldateien an und entschlüsseln die Anweisungen.

  • 1d0 – Die erste Zeile (1 ) aus der ersten Datei gelöscht werden (d ). Wenn nicht, würde es in Zeile 0 erscheinen in der zweiten Datei.
  • < Apple –Der Inhalt, den Sie löschen müssen (wie mit 1d0 bezeichnet ).
  • 2a2,3 – In Zeile 2 der ersten Datei sollten Sie (a ) Zeilen 2 und 3 (2,3 ) aus der zweiten Datei.
  • > Peach , > Apple – Der Inhalt, den Sie hinzufügen müssen (wie mit 2a2,3 bezeichnet ).
  • 4c5 – Die vierte Zeile (4 ) aus der ersten Datei geändert werden (c ) bis zur fünften Zeile (5 ) aus der zweiten Datei.
  • < Watermelon – Den Inhalt, den Sie ändern müssen.
  • > Melon – Was Sie ändern müssen.

Diff-Optionen

Ohne zusätzliche Optionen diff zeigt die Ausgabe im Standardformat an. Es gibt Möglichkeiten, diese Ausgabe zu ändern, um sie verständlicher oder für Ihren Anwendungsfall anwendbar zu machen. Lesen Sie weiter, um mehr über diff zu erfahren Befehlsoptionen.

-c Option

Das Kontextformat ist ein diff Option des Befehlszeilendienstprogramms, die mehrere Kontextzeilen um die Zeilen herum ausgibt, die sich unterscheiden.

Um den Unterschied zwischen den Dateien in Kontextform anzuzeigen, verwenden Sie den Befehl:

diff -c file1 file2

Sehen Sie sich die Ausgabe für die Beispieldateien im Kontextformular im Bild unten an.

Zeilen mit Informationen zur ersten Datei beginnen mit *** , während Zeilen, die die zweite Datei angeben, mit --- beginnen .

Die ersten beiden Zeilen zeigen den Namen und Zeitstempel beider Dateien:

*** example1.txt             2021-12-27 10:53:30.700640904 +0100
--- example2.txt             2021-12-27 10:54:41.304939358 +0100

**************** - wird nur als Trennzeichen verwendet.

Bevor die Zeilen aus jeder Datei aufgelistet werden, beginnt die Ausgabe mit dem Zeilenbereich der Dateien:

***  1,5 ****
---  1,6 ----

Die restlichen Zeilen listen den Inhalt der Dateien auf. Der Anfang jeder Zeile gibt an, wie example1.txt geändert werden kann um es gleich zu machen wie example2.txt . Beginnt die Zeile mit:

- (minus) – es muss aus der ersten Datei gelöscht werden.
+ (plus) – es muss der ersten Datei hinzugefügt werden.
! (Ausrufezeichen) – es muss in die entsprechende Zeile aus der zweiten Datei geändert werden.

Wenn kein Symbol vorhanden ist, bleibt die Zeile gleich.

Daher sollten Sie im obigen Beispiel Apple löschen Ersetzen Sie in der ersten Zeile Watermelon mit Melon in Zeile vier und fügen Sie Peach hinzu und Apple zu den Zeilen zwei und drei.

-u Option

Das vereinheitlichte Format ist eine Option, die Sie hinzufügen können, um die Ausgabe ohne redundante Kontextzeilen anzuzeigen. Verwenden Sie dazu den Befehl:

diff -u file1 file2

Sehen wir uns nun die Ausgabe für die Beispieldateien im einheitlichen Format an:

Zeilen mit Informationen zur ersten Datei beginnen mit --- , während Zeilen, die die zweite Datei angeben, mit +++ beginnen .

Die ersten beiden Zeilen zeigen den Namen und Zeitstempel beider Dateien:

*** example1.txt             2021-12-27 10:53:30.700640904 +0100
--- example2.txt             2021-12-27 10:54:41.304939358 +0100

@@ -1,5 +1,6 @@ - zeigt den Zeilenbereich für beide Dateien an.

Die Zeilen unten zeigen den Inhalt der Dateien und wie example1.txt geändert werden kann um es mit example2.txt identisch zu machen . Wenn die Zeile beginnt mit:

- (minus) – es muss aus der ersten Datei gelöscht werden.
+ (plus) – es muss der ersten Datei hinzugefügt werden.

Wenn kein Symbol vorhanden ist, bleibt die Zeile gleich.

Im obigen Beispiel weist die Ausgabe an, dass Apple und Watermelon entfernt werden sollte, während Peach , Apple , und Melon sollte hinzugefügt werden.

-i-Option

Standardmäßig diff unterscheidet zwischen Groß- und Kleinschreibung. Wenn Sie möchten, dass die Groß-/Kleinschreibung ignoriert wird, fügen Sie -i hinzu Option zum Befehl:

diff -i file1 file2

Wenn wir zum Beispiel eine Datei mit den folgenden Zeilen erstellen:

Apple
Orange
Banana
Watermelon
Cherry

Und noch eine Datei mit dem Inhalt:

Apple
orange
Banana
watermelon
Cherry

Die Ausgabe ohne zusätzliche Optionen zeigt, dass es Unterschiede zwischen den Dateien gibt, und gibt Anweisungen, wie sie geändert werden können.

Wenn Sie jedoch das -i hinzufügen Option gibt es keine Ausgabe, da der Befehl keine Unterschiede erkennt.

--Versionsoption

So überprüfen Sie die Version von diff auf Ihrem System ausgeführt wird, führen Sie den folgenden Befehl aus:

diff --version

--Hilfe-Option

Um eine Zusammenfassung von diff auszugeben Verwendungslauf:

diff --help

Andere Diff-Optionen

Andere Optionen, die sich diff Unterstützt werden:

-a / --text Dateien als Text anzeigen und Zeile für Zeile vergleichen.
-b / --ignore-space-change Leerzeichen beim Vergleichen von Dateien ignorieren.
-B / --ignore-blank-lines<code> Leerzeilen beim Vergleichen von Dateien ignorieren.
--binary Daten im Binärmodus vergleichen und schreiben.
-d --minimal Ändern Sie den Algorithmus (z. B. um weniger Änderungen zu finden).
-e / --ed Ausgabe zu einem gültigen ed machen Skript.
-E / --ignore-tab-expansion Tabulatorerweiterung beim Vergleichen von Dateien ignorieren.
-l / --paginate Führen Sie die Ausgabe über pr aus um es zu paginieren.
-N / --new-file Eine fehlende Datei als vorhanden, aber leer behandeln.
-q / --brief Ausgabe, ob sich Dateien unterscheiden, ohne Angabe von Details.
-s / --report-identical-files Ausgabe, wenn die Dateien identisch sind.
-w / --ignore-all-space Leerraum beim Vergleichen von Dateien ignorieren.

Linux
  1. So verwenden Sie den Linux-Grep-Befehl

  2. So verwenden Sie den Verlaufsbefehl unter Linux

  3. So verwenden Sie den Linux-Verlaufsbefehl

  4. So verwenden Sie den Tar-Befehl unter Linux

  5. So verwenden Sie den id-Befehl unter Linux

So verwenden Sie einen Dateibefehl unter Linux

So verwenden Sie den fd-Befehl auf einem Linux-System

Wie verwende ich den wget-Befehl unter Linux?

Wie verwende ich den xargs-Befehl unter Linux?

Wie verwende ich den Gzip-Befehl unter Linux?

So verwenden Sie den Befehl lsof unter Linux