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 02/2018: PAKETE VERWALTEN

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

sharklinux
Gerd-Peter Behrendt, 18.01.2018 23:58, 0 Antworten
Hallo zusammen, ich habe sharklinux von der DVD Installiert. 2x, jedesmal nach dem Reboot ist di...
Anfänger sucht Ratschläge
Alucard Nosferatu, 18.01.2018 21:56, 3 Antworten
Guten Tag, meine Wenigkeit würde gerne auf einer meiner Festplatten von meinen Feldrechnern e...
Suchprogramm
Heiko Taeuber, 17.01.2018 21:12, 1 Antworten
Hallo liebe Community, keine Ahnung ob dieses Thema hier schon einmal gepostet wurde. Ich hab...
Linux Mint als Zweitsystem
Wolfgang Robert Luhn, 13.01.2018 19:28, 4 Antworten
Wer kann mir helfen??? Habe einen neuen Laptop mit vorinstaliertem Windows 10 gekauft. Möchte g...
externe soundkarte Kaufempfehlung
lara grafstr , 13.01.2018 10:20, 4 Antworten
Hallo Ich bin auf Suche nach einer externen soundkarte.. Max 150 Euro Die Wiedergabe is...