Linux sdiff Befehl Tutorial für Anfänger (6 Beispiele)
Hier bei HowtoForge haben wir bereits über mehrere Befehlszeilenprogramme gesprochen, die sich darauf konzentrieren, Dateiunterschiede zu finden. Aber es gibt noch einige weitere solcher Werkzeuge, und in diesem Tutorial werden wir auf einen solchen Befehl mit dem Namen sdiff diskutieren anhand einiger leicht verständlicher Beispiele.
Bitte beachten Sie, dass alle in diesem Artikel genannten Beispiele auf Ubuntu 16.04 LTS getestet wurden.
Linux sdiff Befehl
Der Befehl sdiff zeigt Ihnen Dateiunterschiede in nebeneinander liegender Form an. Folgendes ist seine Syntax:
sdiff [OPTION]... FILE1 FILE2
Und so beschreibt es die Manualseite:
sdiff - side-by-side merge of file differences Side-by-side merge of differences between FILE1 and FILE2.
Im Folgenden finden Sie einige Beispiele im Q&A-Stil, die Ihnen einen guten Eindruck davon vermitteln sollen, wie dieses Tool funktioniert.
Q1. Wie funktioniert der sdiff-Befehl?
Die grundlegende Verwendung ist einfach, alles, was Sie tun müssen, ist, den Befehl sdiff mit Dateinamen als Argumente auszuführen. Zum Beispiel:
sdiff file1 file2
file1 und file2 waren in meinem Fall genau gleich.
Und hier ist die Ausgabedifferenz, die in diesem Fall erzeugt wird:
Diese Art der Ausgabe bedeutet, dass es keinen Unterschied in den Dateien gibt.
Q2. Wie man sdiff dazu bringt, den Fall zu ignorieren?
Angenommen, file1 und file2 enthalten folgende Zeilen:
Der Befehl:
sdiff file1 file2 file2
erzeugt die folgende Ausgabe:
Das Rohr (|) in der ersten Zeile in der zweiten Spalte zeigt an, dass die beiden Dateien in der ersten Zeile selbst unterschiedlich sind. Wenn du jedoch willst, kannst du sdiff zwingen, Groß-/Kleinschreibung zu ignorieren, was du mit der Kommandozeilenoption -i tun kannst.
sdiff -i file1 file1 file2 file2
Sie können also sehen, dass die Ausgabe nun die beiden Dateien als identisch anzeigt, was bedeutet, dass der Fallunterschied ignoriert wurde.
Q3. Wie kann man Sdiff dazu bringen, Leerzeichen zu ignorieren?
Falls eine der Dateien Leerzeichen enthält, zeigt der Befehl sdiff standardmäßig die Differenz an. Wenn Sie möchten, können Sie dieses Verhalten jedoch mit der Kommandozeilenoption -Z unterdrücken:
Dann gibt es noch einige andere raumbezogene Optionen, die Sie beachten sollten. Hier ist eine Liste:
-E, --ignore-tab-expansion ignore changes due to tab expansion
-b, --ignore-space-change ignore changes in the amount of white space
-W, --ignore-all-space ignore all white space
Q4. Wie man sdiff dazu bringt, Leerzeilen zu ignorieren?
Genau wie Leerzeichen berücksichtigt der Befehl sdiff standardmäßig auch Leerzeilen. Zum Beispiel:
Sie können den Befehl jedoch veranlassen, Leerzeilen zu ignorieren, indem Sie die Option -B Befehlszeile verwenden.
sdiff -B file1 file1 file2
So können Sie sehen, dass der Befehl sdiff in diesem Fall die Leerzeile nicht als Unterschied betrachtet hat.
Q5. Wie kann man erreichen, dass sdiff gemeinsame Linien unterdrückt?
Angenommen, die Dateien enthalten einige gemeinsame Zeilen, und Sie möchten, dass der Befehl sdiff gemeinsame Zeilen unterdrückt, dann können Sie dies mit der Befehlszeilenoption -s tun.
sdiff -s file1 file1 file2
Q6. Wie kann man erreichen, dass sdiff ein anderes Diff-Programm verwendet?
Standardmäßig verwendet sdiff diff, um den Vergleich durchzuführen. Wenn Sie möchten, können Sie diff jedoch auch durch das Programm Ihrer Wahl ersetzen. Verwenden Sie dazu die Option –diff-program, die als Eingabe den Programmnamen benötigt.
sdiff --diff-program=[PROGRAM] file1 file2
Fazit
Das Sdiff-Tool bietet vielleicht eine Menge Funktionen, aber die Lernkurve ist nicht so steil. Alles, was du tun musst, ist ein wenig üben, und du solltest gut sein, um zu gehen. Wir haben hier die meisten Kommandozeilenoptionen besprochen. Weitere Informationen findest du auf der Man Page von sdiff.