Manuel de l'Utilisateur Expérimenté Solaris

Recherche de différences entre fichiers (diff)

Souvent, plusieurs utilisateurs ayant accès à un fichier effectuent des copies de ce fichier en y apportant des modifications. La commande diff vous indique les différences rencontrées entre les versions d'un fichier ASCII. La commande suivante :

$ diff leftfile rightfile

balaie chaque ligne des fichiers leftfile et rightfile en recherchant les différences éventuelles. Lorsqu'elle rencontre une ligne (ou des lignes) différente(s), elle détermine si la différence provient de l'ajout, de la suppression ou de la modification d'une ligne, et indique le nombre de lignes concernées, ainsi que leur numéro respectif dans chacun des deux fichiers, suivi du texte correspondant.

Si la différence est due à un ajout, la commande diff affiche une ligne sous la forme suivante :

l[,l] a r[,r]

l désigne un numéro de ligne du fichier leftfile et r un numéro de ligne du fichier rightfile.

Si la différence est due à une suppression, la commande diff affiche la lettre d (delete) au lieu de la lettre a ; s'il s'agit d'une modification de ligne, la commande diff affiche la lettre c (change).

Le texte figurant sur les lignes respectives des deux fichiers suit immédiatement le numéro de ligne. Le texte du fichier leftfile est précédé d'un chevron gauche (<). Le texte du fichier rightfile est précédé d'un chevron droit (>).

L'exemple ci-dessous fait apparaître deux fichiers contenant les différences trouvées par la commande diff :

$ cat progr.15.7.
Semaine du 15/7

Jour:  Heure:      Action :              Détails:

M     10:00        Gest.matériel        une semaine sur deux
M     1:30         Gest.logiciels
J     3:00         Gest.doc
V     1:00         Entretien
$ cat progr.22.7
Semaine du 22/7

Jour: Heure:       Action :              Détails:

L     8:30         Gest.personnel       tous les jours
M     10:00        Gest.matériel        une semaine sur deux
M     1:30         Gest.logiciels
J     3:00         Gest.doc
$ diff progr.15.7 progr.22.7
1c1
< Semaine du 15/7
---
> Semaine du 22/7
4a5
> L     8:30         Gest. personnel      tous les jours
8d8
< V     1:00         Entretien

Si les deux fichiers à comparer sont identiques, la commande diff n'affiche rien.

Cette section ne présente que certaines des options de la commande diff(1). Pour plus d'informations, consultez les man Pages(1): User Commands.

Comparaison de trois fichiers différents (diff3)

Si vous souhaitez comparer simultanément trois versions différentes d'un même fichier, utilisez la commande diff3 de la façon suivante :

$ diff3 fichier1 fichier2 fichier3

diff3 compare les trois versions d'un même fichier et affiche les parties de texte différentes, en utilisant les codes suivants :

==== les trois fichiers sont différents

====1 fichier1 est différent

====2 fichier2 est différent

====3 fichier3 est différent

Utilisation de bdiff sur des fichiers volumineux

Si vous souhaitez comparer des fichiers très volumineux, utilisez la commande bdiff au lieu de diff. Son fonctionnement est similaire à celui de diff :

$ bdiff leftfile rightfile

Utilisez bdiff au lieu de diff pour les fichiers dépassant 3500 lignes.