Comment comparer deux fichiers texte à l'aide de Linux

Ce qu'il faut savoir

  • Pour comparer, exécutez: fichier diff1 fichier2
  • Montrez en quoi ils sont différents avec: diff -q fichier1 fichier2
  • Montrez comment ils sont identiques avec: diff -s fichier1 fichier2

Cet article explique comment utiliser Linux pour comparer deux fichiers et afficher les différences entre les fichiers à l'écran ou dans un fichier. Vous n'installerez pas de logiciel spécial pour comparer les fichiers à l'aide de Linux, mais vous devez savoir comment ouvrir une fenêtre de terminal.

Créer les fichiers à comparer

Si vous souhaitez suivre ce guide, créez deux fichiers texte contenant du texte similaire mais différent.

Créer le premier fichier

Créer un fichier appelé fichier1 puis saisissez le texte suivant:

10 bouteilles vertes debout sur un mur
10 bouteilles vertes debout sur un mur
Si une bouteille verte tombe accidentellement
Il y aurait 9 bouteilles vertes debout sur le mur

Pour créer ce fichier, suivez ces instructions:

  1. Ouvrez le fichier en tapant la commande suivante:

    fichier nano1
    Commande du terminal: nano file1

    Le moyen le plus rapide d'ouvrir une fenêtre de terminal sous Linux est d'appuyer sur le bouton CTRL+ALT+T clés en même temps.

  2. Tapez le texte dans l'éditeur nano.

    Fichier terminal1 dans Nano
  3. presse CTRL+O pour enregistrer le fichier.

  4. presse CTRL+X pour quitter le fichier.

Créer le deuxième fichier

Ensuite, créez un autre fichier appelé fichier2 et saisissez le texte suivant:

10 bouteilles vertes debout sur un mur
Si 1 bouteille verte tombe accidentellement
Il y aurait 9 bouteilles vertes debout sur le mur

Pour créer ce fichier, suivez ces instructions:

  1. Ouvrez le fichier en tapant la commande suivante:

    fichier nano2
  2. Tapez le texte dans l'éditeur nano.

    Terminal file2 dans Nano
  3. presse CTRL+O pour enregistrer le fichier.

  4. presse CTRL+X pour quitter le fichier.

Comment comparer deux fichiers à l'aide de Linux

La commande utilisée sous Linux pour montrer les différences entre deux fichiers s'appelle la commande diff.

La forme la plus simple de la commande diff est la suivante:

fichier diff1 fichier2

Si les fichiers sont identiques, aucune sortie ne s'affiche lors de l'utilisation de cette commande. Cependant, comme il existe des différences, la sortie est similaire à la suivante:

2,4c2,3
< 10 bouteilles vertes accrochées au mur
< Si une bouteille verte tombe accidentellement
< Il y aurait 9 bouteilles vertes debout sur le mur
...
> Si 1 bouteille verte tombe accidentellement
> Il y aurait 9 bouteilles vertes sur le mur

Au départ, le résultat semble déroutant, mais une fois que vous avez compris la terminologie, c'est assez logique.

Commande de terminal " diff file1 file2" sous Linux

Les différences entre les deux fichiers sont les suivantes:

  • Le deuxième fichier n'a que trois lignes. Le premier fichier en a quatre.
  • Le deuxième fichier dit 1 bouteille verte sur la troisième ligne. Le premier fichier dit une bouteille verte.
  • Le deuxième fichier dit le rouge à la place de il y aurait sur la dernière ligne.

La sortie de la commande diff montre qu'entre les lignes deux et quatre du premier fichier et les lignes deux et trois du deuxième fichier, il existe des différences.

Il répertorie ensuite les lignes de deux à quatre du premier fichier, suivies des deux lignes différentes du deuxième fichier.

Comment afficher uniquement si les fichiers sont différents

Si vous voulez seulement savoir si les fichiers sont différents et que les lignes ne vous intéressent pas, exécutez la commande suivante:

diff -q fichier1 fichier2

Si les fichiers sont différents, le message suivant s'affiche:

Les fichiers file1 et file2 diffèrent

Si les fichiers sont les mêmes, rien ne s'affiche.

Comment afficher un message si les fichiers sont les mêmes

Lorsque vous exécutez une commande, vous voudrez peut-être savoir qu'elle a fonctionné correctement. Vous souhaitez qu'un message s'affiche lorsque vous exécutez la commande diff, que les fichiers soient identiques ou différents.

Pour répondre à cette exigence à l'aide de la commande diff, utilisez la commande suivante:

diff -s fichier1 fichier2

Si les fichiers sont les mêmes, ce message apparaît:

Les fichiers file1 et file2 sont identiques

Comment produire les différences côte à côte

S'il y a plusieurs différences, il peut être déroutant de savoir quelles sont réellement les différences entre les deux fichiers. Vous pouvez modifier la sortie de la commande diff afin que les résultats soient affichés côte à côte. Pour ce faire, exécutez la commande suivante:

diff -y fichier1 fichier2

La sortie du fichier utilise le | symbole pour montrer une différence entre les deux lignes, un < pour afficher une ligne qui a été supprimée, et un > pour afficher une ligne qui a été ajoutée.

Commande de terminal " diff -y fichier1 fichier2" sous Linux

Lorsque vous exécutez la commande à l'aide des fichiers de démonstration de cet article, toutes les lignes s'affichent comme différentes, à l'exception de la dernière ligne de fichier2, qui est affiché comme supprimé.

Limiter la largeur des colonnes

Lors de la comparaison de deux fichiers côte à côte, il peut être difficile de lire si les fichiers ont plusieurs colonnes de texte. Pour restreindre le nombre de colonnes, utilisez la commande suivante:

diff --width=5 fichier1 fichier2

Comment ignorer les différences de casse lors de la comparaison de fichiers

Si vous souhaitez comparer deux fichiers, mais que vous ne vous souciez pas de savoir si la casse des lettres est la même entre les deux fichiers, utilisez la commande suivante:

diff -i fichier1 fichier2

Comment ignorer l'espace blanc à la fin d'une ligne

Si vous remarquez de nombreuses différences lors de la comparaison de fichiers et que les différences sont causées par des espaces blancs à la fin des lignes, empêchez-les de s'afficher en tant que modifications en exécutant la commande suivante:

diff -Z fichier1 fichier2

Comment ignorer toutes les différences d'espace blanc entre deux fichiers

Si vous n'êtes intéressé que par le texte d'un fichier et que vous ne vous souciez pas du fait qu'il y ait plus d'espaces dans l'un que dans l'autre, utilisez la commande suivante:

diff -w fichier1 fichier2

Comment ignorer les lignes vides lors de la comparaison de deux fichiers

Si vous ne vous souciez pas du fait qu'un fichier puisse contenir des lignes vides supplémentaires, comparez les fichiers à l'aide de la commande suivante:

diff -B fichier1 fichier2

Sommaire

Vous pouvez trouver plus d'informations en lisant le manuel pour la commande diff.

homme diff

La commande diff peut être utilisée dans sa forme la plus simple pour afficher uniquement les différences entre deux fichiers. Vous pouvez également l'utiliser pour créer un fichier diff dans le cadre d'un stratégie de correction.

Une autre commande que vous pouvez utiliser pour comparer des fichiers est la commande cmp. Ceci compare les fichiers octet par octet.