Diffutils

Der kleine Unterschied

Textdateien miteinander vergleichen, die Unterschiede herausfinden und anzeigen, ja sogar der automatische Abgleich der Dateien – das alles bieten die Diffutils auf der Kommandozeile.

Die Diffutils enthalten allerlei nützliche Tools: So vergleicht Diff zwei Textdateien miteinander, verrät Ihnen die Unterschiede auf der Konsole und schreibt die Änderungsvorschläge auf Wunsch in eine Patch-Datei, mit der Sie das gewünschte Dokument vollautomatisch anpassen. Wer mit drei Textdateien hantiert, greift stattdessen zu Diff3 – wir zeigen Tipps und Tricks.

Differenziert betrachten

Das Programm Diff vergleicht zwei Textdateien (optional Dateien aus zwei Verzeichnissen) zeilenweise miteinander und verrät auf der Konsole, ob und wie diese sich unterscheiden. Um herauszufinden, ob es überhaupt Unterschiede gibt, rufen Sie das Programm zusammen mit dem Parameter -q und den beiden Textdateien auf:

$ diff -q datei1 datei2
Dateien datei1 und datei2 sind v↩
erschieden.

Interessieren Sie sich für die Unterschiede, lassen Sie die Option weg, und Diff schreibt seine Erkenntnisse direkt auf die Shell (Abbildung 1). Neben den Zeilen, die sich voneinander unterscheiden, sehen Sie jeweils eine etwas kryptische Angabe, die verrät, was geändert werden muss, damit die sich die beiden Dateien aufs Haar gleichen.

Abbildung 1: Diff zeigt die Unterschiede zwischen den beiden Textdateien zeilenweise auf der Konsole an.

Diese Änderungsvorschläge folgen immer demselben Schema: Neben den Zeilennummern oder einem Bereich (Zeilennummer durch Kommata getrennt), sehen Sie hier einen der drei Buchstaben a, c oder d: a steht für "append" (englisch anhängen), c für "change" (verändern) und d für "delete" (löschen). So bedeutet

9,12c9,13

aus Abbildung 1 beispielsweise, dass Sie die Zeilen 9 bis 12 der ersten Datei oder 9 bis 13 der zweiten Datei verändern müssen, damit sich die beiden Dateien gleichen. Entsprechend teilt Diff Ihnen über eine Ausdruck wie

3a,13,15

mit, dass Sie die Zeilen 13 bis 15 der zweiten Datei hinter Zeile 3 der ersten einfügen müssen. Sehen Sie die Anweisung

4-7,d8

sind die Zeilen 4 bis 7 der ersten Datei zu löschen oder entsprechend nach Zeile 8 der zweiten Datei anzuhängen, wenn Sie die zweite Datei anpassen.

TIPP

Scrollt die Diff-Ausgabe aus dem Terminal, leiten Sie diese per Pipe-Zeichen an das Programm Less oder More weiter, etwa über diff datei1 datei2 | less. Alternativ bietet es sich an, den Output in einer Datei abzulegen, beispielsweise diff datei1 datei2 > unterschiede. Wenn Sie diese nun in einem Texteditor mit Syntax-Highlighting betrachten, sehen Sie die Unterschiede farblich hervorgehoben (Abbildung 2).

Abbildung 2: Mit Syntax-Highlighting ist die Diff-Ausgabe gleich viel übersichtlicher.

Schall und Rauch

Enthalten die beiden Vergleichskandidaten viele leere Zeilen an unterschiedlichen Stellen, bläht das den Diff-Output unnötig auf. Dass das Programm Leerzeilen ignorieren soll, teilen Sie daher über einen weiteren Parameter (-B) mit.

Ebenso gibt es verschiedene Optionen, die sich mit Leerzeichen beschäftigen. So bringen Sie Diff dazu, entweder Tabulatoren (-E), einfache Leerzeichen (-b) oder sämtliche Leerzeichen (-w) zu ignorieren. Wer keinen Wert auf die Unterscheidung von Groß- und Kleinschreibung legt, teilt Diff dieses über die Option -i mit.

LinuxCommunity kaufen

Einzelne Ausgabe
 
Abonnements
 
TABLET & SMARTPHONE APPS
Bald erhältlich
Get it on Google Play

Deutschland

Ähnliche Artikel

  • Zu Befehl: diff, diff3, patch
    Finden Sie die Unterschiede – die Programme diff und diff3 aus dem Paket diffutils helfen beim Vergleichen von Textdateien, zeigen eventuelle Abweichungen auf der Kommandozeile an und gleichen die Dateien auf Wunsch vollautomatisch an.
  • Zu Befehl
    Zu Vergleichen gibt es immer wieder etwas. Im Falle von Textdateien eignet sich das Kommandozeilen-Tool diff für diese Aufgabe.
  • Textdateien mit "diff" und "wdiff" vergleichen
    Mehrere Versionen derselben Datei werfen die Frage auf, ob diese sich unterscheiden – zumindest für Textdateien bringt die Shell alle Tools mit, die Sie brauchen, um diese Frage zu beantworten.
  • Dichter dran
    Gzip und Bzip2 komprimieren nicht nur Daten, sondern liefern auch kleine, feine Tools zum Betrachten, Durchsuchen und Vergleichen komprimierter Textdateien mit.
  • Mit CVS oder Subversion Quelltexte verwalten
    Versionsverwaltung ist weder kompliziert noch ausschließlich für Programmierer gedacht: Tools wie Subversion archivieren unkompliziert alle Dateien, von denen es unterschiedliche Versionen gibt.
Kommentare

Infos zur Publikation

LU 12/2017: Perfekte Videos

Digitale Ausgabe: Preis € 5,95
(inkl. 19% MwSt.)

LinuxUser erscheint monatlich und kostet 5,95 Euro (mit DVD 8,50 Euro). Weitere Infos zum Heft finden Sie auf der Homepage.

Das Jahresabo kostet ab 86,70 Euro. Details dazu finden Sie im Computec-Shop. Im Probeabo erhalten Sie zudem drei Ausgaben zum reduzierten Preis.

Bei Google Play finden Sie digitale Ausgaben für Tablet & Smartphone.

HINWEIS ZU PAYPAL: Die Zahlung ist ohne eigenes Paypal-Konto ganz einfach per Kreditkarte oder Lastschrift möglich!

Stellenmarkt

Aktuelle Fragen

Broadcom Adapter 802.11n nachinstallieren
Thomas Mengel, 31.10.2017 20:06, 2 Antworten
Hallo, kann man nachträglich auf einer Liveversion, MX Linux auf einem USB-Stick, nachträglich...
RUN fsck Manually / Stromausfall
Arno Krug, 29.10.2017 12:51, 1 Antworten
Hallo, nach Absturz des Rechners aufgrund fehlendem Stroms startet Linux nicht mehr wie gewohn...
source.list öffnet sich nicht
sebastian reimann, 27.10.2017 09:32, 2 Antworten
hallo Zusammen Ich habe das problem Das ich meine source.list nicht öffnen kann weiß vlt jemman...
Lieber Linux oder Windows- Betriebssystem?
Sina Kaul, 13.10.2017 16:17, 6 Antworten
Hallo, bis jetzt hatte ich immer nur mit
IT-Kurse
Alice Trader, 26.09.2017 11:35, 2 Antworten
Hallo liebe Community, ich brauche Hilfe und bin sehr verzweifelt. Ih bin noch sehr neu in eure...