Solaris Handbuch für Fortgeschrittene Benutzer

3.5 Zwei Dateien vergleichen (diff)

Dateien werden häufig von mehreren Benutzern kopiert und dann individuell bearbeitet. Mit dem Befehl diff können Sie feststellen, ob und wie sich zwei Versionen einer ASCII-Textdatei unterscheiden:

$ diff linkedatei rechtedatei

Daraufhin werden nacheinander alle Zeilen in linkedatei und rechtedatei miteinander verglichen. Stellt das System fest, das sich ein oder mehrere Zeilenpaare unterscheiden, prüft es, ob Teile der Zeile hinzugefügt, gelöscht oder verändert wurden und welche Zeilen davon betroffen sind. Ausgegeben werden die Nummer(n) der entsprechenden Zeile(n) in beiden Dateien und der differierende Text.

Wurde Text hinzugefügt, zeigt diff eine Zeile in folgendem Format an:

l[,l] a r[,r]

l steht für eine Zeilennummer in linkedatei und r für eine Zeilennummer in rechtedatei.

Wurde Text gelöscht, zeigt diff statt dem a ein d an. Beruht der Unterschied auf einer Änderung, wird ein c angezeigt.

Der Text aus beiden Dateien folgt unmittelbar auf die Zeilennummer. Der Text aus linkedatei ist durch das Zeichen < und der Text aus rechtedatei durch das Zeichen > gekennzeichnet.

Im nächsten Beispiel wird der Inhalt zweier Dateien zunächst angezeigt und danach mit diff verglichen:

$ cat termine.7.15

Woche vom 7/15



Tag:  Zeit:        Termin:               Kommentar:



D     10:00        Hardware (Bspr.)      alle zwei Wochen

M     1:30         Software (Bspr.)

D     3:00         Doku-Meeting

F     1:00         Personalgespräch

$ cat termine.7.22

Woche von 7/22



Tag:  Zeit:        Terminliste:          Kommentar:



M     8:30         Mitarbeiter-Bespr.    ganztägig

D     10:00        Hardware (Bspr.)      alle zwei Wochen

M     1:30         Software (Bspr.)

D     3:00         Doku-Meeting

$ diff termine.7.15 termine.7.22

1c1

< Woche von 7/15

---

> Woche von 7/22

4a5

> M     8:30         Mitarbeiter-Bespr.   ganztägig

8d8

< F     1:00         Personalgespräch

Sind die beiden Dateien identisch, werden keine Daten ausgegeben.

Der Befehl diff(1) kann mit zahlreichen Optionen eingegeben werden. Näheres dazu finden Sie in den man Pages(1): User Commands.

3.5.1 Drei Dateien vergleichen (diff3)

Wenn Sie drei Versionen einer Datei gleichzeitig vergleichen möchten, verwenden Sie den Befehl diff3:

$ diff3 datei1 datei2 datei3

diff3 vergleicht die Versionen und zeigt differierenden Text mit folgenden Symbolen an:

==== Abweichungen in allen Dateien

====1 Abweichungen in datei1

====2 Abweichungen in datei 2

====3 Abweichungen in datei 3

3.5.2 Große Dateien vergleichen (bdiff)

Wenn die zu vergleichenden Dateien sehr umfangreich sind, verwenden Sie statt diff den Befehl bdiff. Die Eingabesyntax ist gleich:

$ bdiff linkedatei rechtedatei

bdiff sollte verwendet werden, wenn die Dateien mehr als etwa 3500 Zeilen Text enthalten.