Möchte man zwei Inhalte mit einander vergleichen, egal ob Dateien oder Verzeichnisse, so nutzt man unter Linux meist den Befehl diff. Aber es gibt auch Alternativen. Zwei davon sind „colordiff“ und „comm“Doch zuerst einmal zum diff-Befehl.
Die grundsätzliche Syntax ist recht einfach. Man gibt nach dem Befehl den ersten Ort und danach den zweiten Ort an, der verglichen werden soll.
1 |
diff <Pfad/Datei1> <Pfad/Datei2> |
Die Ausgabe gibt die Unterschiede und auch die Gemeinsamkeiten der Inhalte aus. Voran gestellte „“-Zeichen geben an in welcher Quelle der jeweilige Inhalt vorhanden ist.
Mit der Eingabe von -q, werden die Unterschiede nicht angezeigt, sondern nur ausgegeben, ob sich die Quellen unterscheiden.
Tiefer möchte ich nicht in die Syntax eintauchen, denn es gibt neben der man-Page auch sehr gute Beschreibungen des Befehls im Internet.
Ich möchte hier nur die Alternativen colordiff und comm kurz vorstellen.
colordiff verhält sich wie diff, nur dass das Ergebnis farbig ausgegeben wird, was der Lesbarkeit zugute kommt.
Man kann Colordiff direkt als Befehl verwenden, oder einen String an Colordiff übergeben.
1 |
colordiff <Pfad/Datei1> <Pfad/Datei2> |
1 |
diff <Pfad/Datei1> <Pfad/Datei2> | colordiff |
Der comm-Befehl erzeugt die Ausgabe in Spalten.
Ich verwende hier gerne die Option –output-delimiter (meist mit einem Semikolon).
1 |
comm <Pfad/Datei1> <Pfad/Datei2> --output-delimiter=";" |
Der Inhalt, welcher nur in der linken Datei vorhanden ist, wird ohne vorangestelltes Semikolon ausgegeben, der Inhalt aus der zweiten Datei wird mit einem Semikolon am Anfang ausgegeben. Gleiche Inhalte haben zwei vorangestellte Semikolon.
Dies hat den Vorteil, dass man solche Inhalte in Excel kopieren und dann bei der Funktion „Text in Spalten“ das Semikolon als Trennzeichen angeben kann. So wird kann man den Inhalt schön aufbereitet in Excel betrachten.