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

11 Linux diff3-Befehlsbeispiele (Vergleiche 3 Dateien Zeile für Zeile)

Wie Sie bereits wissen, vergleicht der Linux-Befehl diff zwei Dateien.

Das Linux-Dienstprogramm diff3 vergleicht jedoch drei Dateien und ist auch in der Lage, den Unterschied zwischen zwei Dateien in der dritten zusammenzuführen. In diesem Artikel werden wir anhand einiger Beispiele die Verwendung des diff3-Befehls verstehen.

Die grundlegende Syntax von diff3 lautet:

04

1. Grundlegende Diff3-Ausgabe

Verwenden wir für dieses Beispiel diese drei Dateien:parent.txt, your.txt und mine.txt.

13

Wenn nun der diff3-Befehl über diese drei Dateien ausgeführt wird:

21

Wir sehen, dass die Ausgabe Vergleichsinformationen aller dieser drei Dateien enthält. In der obigen Ausgabe:

  • Die allererste Zeile „====“ bedeutet, dass alle drei Dateien unterschiedlich sind.
  • Als nächstes bedeutet die Zeile '1:1,2c', dass für die erste (1:) Datei, die als Argument für diff3 angegeben wird (in unserem Fall parent.txt), Zeilen im Bereich von eins bis zwei (1,2 ) unterscheiden sich im Vergleich zu den anderen beiden Dateien und müssen geändert werden(c) und diese beiden Zeilen werden auch in den nächsten beiden Zeilen der Ausgabe angezeigt.
  • In ähnlicher Weise können „2:1,2c“ und „3:1,2c“ verstanden werden.

Bitte beachten Sie, dass es neben der Verwendung des Dienstprogramms diff3 auch hilfreich ist zu verstehen, wie man diff, colordiff, wdiff oder vimdiff für Ihren typischen Vergleich von zwei Dateien verwendet.

2. Wenn zwei von drei Dateien ähnlich sind

Nehmen Sie für dieses Beispiel an, dass die Dateien mine.txt und parent.txt genau gleich sind.

35

Und diff3 wird jetzt über diese drei Dateien ausgeführt:

43

Die allererste Zeile „====3“ bedeutet, dass sich diesmal die Dateinummer 3, dh your.txt, von den anderen beiden unterscheidet. Dies ist auch in der Ausgabe sichtbar.

3. 'c' steht für Änderung, während 'a' für Anhängen steht

Bisher haben wir in der Ausgabe ein Alphabet „c“ gesehen. Dieser Buchstabe bedeutet „Änderung“, die in den Zeilen/im Text erforderlich ist. Wenn das Alphabet "a" angezeigt wird, bedeutet dies, dass eine Zeile angehängt werden muss.

Nehmen wir ein anderes Beispiel:

51

Führen Sie nun diff3 auf diesen drei Dateien aus:

64

Die obige Ausgabe bedeutet, dass die Änderung in Datei3 (d. h. your.txt) in Datei1 (mine.txt) und Datei2 (parent.txt) angehängt werden muss, um alle drei Dateien ähnlich zu machen. Alternativ kann die zweite Zeile in your.txt geändert werden (c), um alle drei Dateien ähnlich zu machen.

4. Überlappende Änderungen mit der Option -x ausgeben

Mit dem Flag -x können die Änderungen ausgegeben werden, die zu Überschneidungen führen. Die Reihenfolge der Dateinamen, die als Argument für diff3 angegeben werden, ist hier von Bedeutung. Zum Beispiel:

76

bedeutet, dass Sie in mine.txt die Änderungen zusammenführen möchten, die parent.txt in your.txt verwandeln würden

Nehmen wir ein Beispiel:

82

Jetzt diff3 ausführen:

92

Wir sehen also, dass
die Ausgabe besagt, dass die dritte Zeile von mine.txt in „bye“ geändert werden muss, um die Änderungen zusammenzuführen, die parent.txt in your.txt verwandeln würden

5. Nicht zusammengeführte Änderungen mit der Option -e ausgeben

Die Option -e kann verwendet werden, um nicht zusammengeführte Änderungen von parent.txt zu your.txt in mine.txt auszugeben.
Betrachtet dieselben Dateien wie im obigen Beispiel:

100

Wir sehen also, dass die Ausgabe die nicht zusammengeführten Änderungen zeigt.

6. Ausgabe der zusammengeführten Datei mit der Option -m

Mit der Option -m kann eine zusammengeführte Datei erstellt werden, die den Inhalt aller drei Dateien enthält. Wenn zum Beispiel die folgenden drei Dateien sind:

117

Wenn nun diff3 mit der Option -m ausgeführt wird:

122

Die obige Ausgabe zeigt also den Inhalt der zusammengeführten Datei, die den Inhalt aller drei Dateien zusammengeführt hat, die als Argumente an diff3 übergeben wurden.

7. Konflikte mit der Option -m verstehen

Das Erstellen einer zusammengeführten Datei (aus den drei Dateien) ist nicht immer ein Kinderspiel (wie im obigen Beispiel gezeigt).

Betrachten Sie den Inhalt der Eingabedatei unten:

137

Wenn diff3 über die obigen Dateien läuft, wird die folgende Ausgabe angezeigt:

149

Hier sind die ersten beiden Zeilen unbestritten Teil der zusammengeführten Datei, aber der eigentliche Konflikt wird zwischen <<<<<<>>>>>> zusammen mit Dateinamen und Inhalt angezeigt.

8. Akzeptiere ein Argument von stdin mit ‘-‘

Ein ‚-‘ kann anstelle eines beliebigen Dateinamens verwendet werden, um Eingaben von stdin für dieses Argument zu akzeptieren.

152

Wie wir sehen können, wurde beim Ausführen des obigen Befehls der Inhalt der dritten Datei über stdin übergeben. Beachten Sie, dass nach Eingabe des Inhalts der Datei von stdin die Tastenkombination Strg+d gedrückt werden muss, um die Ausgabe von diff3.

zu erhalten

9. diff3 verwendet das Diff-Tool, um Dateien zu vergleichen

Obwohl diff3 damit prahlt, 3 Dateien zu vergleichen, verwendet es tatsächlich intern das Diff-Tool, um die Vergleiche zwischen zwei Dateien durchzuführen. Dies kann bestätigt werden, indem eine ausführbare Datei als Eingabeargument übergeben wird:

168

Wir können also in der obigen Ausgabe sehen, dass der diff3-Befehlsfehler besagt, dass das untergeordnete Programm „diff“ fehlgeschlagen ist.

10. Geben Sie ein Diff-Programm über die Option –diff-program

an

Der Befehl diff3 bietet die Flexibilität, ein diff-Programm als Argument bereitzustellen, sodass dasselbe zum Vergleichen von Dateien und zum Bereitstellen der Ergebnisse verwendet werden kann, die diff3 verwenden kann. Diese Funktionalität wird durch die Verwendung der Option –diff-program erreicht.

172

11. Behandle alle Dateien als Text mit der Option -a

Wie Sie im oben gezeigten Beispiel 9 sehen können, hat diff3 einen Fehler zurückgegeben, als wir eine Nicht-Textdatei (eine ausführbare Datei a.out) übergeben haben. Aber wenn wir diff3 anweisen wollen, auch Nicht-Textdateien zu vergleichen, dann kann eine Option -a verwendet werden, die diff3 anweist, alle Eingabedateien als Textdateien zu betrachten. Zum Beispiel:

189

Die obige Ausgabe zeigt also, dass diff3 versucht hat, sogar eine ausführbare Datei zu vergleichen, die sie als Textdatei behandelt.

Zusätzliche Diff-Artikel

  • Die 4 wichtigsten Tools zur Dateidifferenzierung unter UNIX/Linux – Diff, Colordiff, Wdiff, Vimdiff
  • BZ ist einfach! bzdiff-Beispiel
  • Visual File Diff mit Vimdiff – es macht einen Unterschied!
  • Die Macht der Z-Befehle – Zdiff-Beispiele

Linux
  1. mv-Befehl unter Linux:7 wesentliche Beispiele

  2. Beispiele für Linux-Tail-Befehle

  3. 5 Wget-Befehlsbeispiele zum Herunterladen von Dateien unter Linux.

  4. 10 Cat-Befehlsbeispiele zum Verwalten von Dateien unter Linux / UNIX

  5. 7 Patch-Befehlsbeispiele zum Anwenden von Diff-Patch-Dateien unter Linux

lsof-Befehl unter Linux (10 Beispiele)

Touch-Befehl in Linux (5 Beispiele)

Linux-WC-Befehl mit Beispielen

Beispiele für Linux-Diff-Befehle

Linux cat-Befehlsbeispiele

Linux gzip-Befehlsbeispiele