Comment comparer deux fichiers sous Linux

How Compare Two Files Linux



Si vous voulez comparer deux fichiers et déchiffrer la différence, une commande appelée différence est utilisé. Ce guide vise à vous fournir l'utilisation du différence commande avec diverses options pour obtenir la différence entre deux fichiers.

Alors, comment le différence la commande fonctionne réellement ? Les différence La commande compare les deux fichiers et génère une liste des différences entre les deux fichiers. Plus précisément, il fournit une liste de modifications qui doivent être apportées dans le premier fichier pour correspondre au deuxième fichier. Les différence La commande est également utilisée par les programmeurs pour faire la différence entre deux fichiers de code source pour développer des correctifs.







Avant de plonger dans les exemples, notez que l'ordre des fichiers est très important. Parce que le différence La commande donne une sortie basée sur l'ordre des fichiers.



Comment utiliser la commande diff sous Linux pour comparer des fichiers :

La syntaxe du différence la commande est mentionnée ci-dessous :



$différence [options] [fichier1] [fichier2]

Tout d'abord, créez deux fichiers. Je crée des fichiers texte du nom de fichier_test_1.txt et fichier_test_2.txt . Ces fichiers contiennent du contenu avec une légère différence :





Maintenant, utilisez la commande suivante pour obtenir la différence :



$différencefichier_test_1.txt fichier_test_2.txt

La sortie standard affichait les lignes qui correspondent selon l'ordre des fichiers mentionnés dans la commande. Alors, décodons la sortie :

La comparaison des fichiers est étiquetée, et chaque étiquette a un numéro de chaque côté. Le format est le suivant :

[Numéro de ligne du fichier 1][Libellé(a,c,d)][Numéro de ligne du fichier 2]

Il existe trois étiquettes :

  • à – Ajouter : ajoutez du contenu dans le premier fichier à synchroniser avec le deuxième fichier.
  • c – Modifier : Indique qu'une modification est nécessaire dans le contenu du premier fichier pour correspondre au deuxième fichier.
  • – Supprimer : supprimez le contenu du premier fichier pour qu'il corresponde au second.

2d1 indique de supprimer la ligne numéro 2 du premier fichier pour correspondre au deuxième fichier de la ligne numéro 1.

De la même manière, 4c3 signifie apporter une modification à la quatrième ligne du premier fichier pour correspondre à la ligne numéro 3 du deuxième fichier car les deux lignes sont légèrement différentes.

Il existe une autre méthode pour voir la différence, utilisez le différence commande avec le -et option:

$différence -et -DANS 60fichier_test_1.txt fichier_test_2.txt

Dans la sortie ci-dessus, le contenu de fichier_test_1.txt s'affiche sur le côté gauche, tandis que le contenu de text_file_2.txt s'affiche sur le côté droit. La différence est indiquée par les symboles :

  • | — La ligne est différente dans le deuxième fichier
  • > — La ligne est supplémentaire dans le deuxième fichier
  • <— Line has been deleted from the second file

Le -W indique la largeur entre le contenu de deux fichiers. Pour obtenir séparément et voir la différence, utilisez les éléments suivants :

$différence -et -DANS 60 --suppress-common-linesfichier_test_1.txt fichier_test_2.txt

Comment obtenir une sortie sur une ligne à l'aide de la commande diff :

Si la méthode étiquetée est difficile à décoder, il existe une approche plus simple. En utilisant le -q option avec le différence La commande vous donne une sortie sur une ligne. Eh bien, sans aucune information supplémentaire, cependant:

$différence -qfichier_test_1.txt fichier_test_2.txt

Si les fichiers diffèrent, la commande ci-dessus donnera une sortie. Si les fichiers sont identiques, il n'y aura pas de sortie. Pour le démontrer, je crée une copie de fichier_test_1.txt à l'aide de:

$cpfichier_test_1.txt fichier_test_3.txt

Un nouveau fichier sera créé sous le nom de fichier_test_3.txt contenant le même contenu que fichier_test_1.txt a. Maintenant, utilisez :

$différence -qfichier_test_1.txt fichier_test_2.txt

Étant donné que les deux fichiers ont un contenu similaire, il n'y aurait donc aucune sortie.

Comment vérifier la différence de fichiers en mode contextuel à l'aide de la commande diff :

Pour obtenir la comparaison en mode contextuel, le -c l'option sera utilisée avec le différence commander:

$différence -cfichier_test_1.txt fichier_test_2.txt

Décortiquons la sortie.

Pour maintenir la différence, le premier fichier est indiqué par *** avec la date et l'heure de création, tandis que le deuxième fichier est indiqué par -.

La ligne suivante signifie une plage de lignes prises en compte lors de la comparaison. Pour le premier fichier, c'est *** 1,6 **** et pour le deuxième fichier, c'est —1.5—- :

La différence est indiquée par les symboles :

  • + : La ligne n'est pas présente dans le premier fichier. Insérez-le dans le premier fichier ou supprimez-le du deuxième fichier pour qu'il corresponde aux deux fichiers.
  • – : la ligne existe dans le premier fichier mais pas dans le second. Essayez de l'insérer dans le deuxième fichier ou de le supprimer du premier pour qu'il corresponde aux deux fichiers.
  • ! : La ligne doit être modifiée pour correspondre.

Comment vérifier la différence de fichiers en mode unifié à l'aide de la commande diff :

Le mode unifié est assez similaire au mode contextuel mais sans informations redondantes. Le drapeau que nous utilisons est -u :

$différence -ufichier_test_1.txt fichier_test_2.txt

Dans la sortie, le premier fichier est indiqué par — et le second par +++. La deuxième ligne indique le nombre de lignes considérées pour la comparaison dans les deux fichiers, puis le contenu à supprimer, ajouter ou modifier avec les symboles qui les accompagnent. Il n'y aura pas de symbole avec des lignes similaires dans les deux fichiers.

Comment ignorer la sensibilité à la casse lors de l'utilisation de la commande diff :

Si vous souhaitez comparer les fichiers en ignorant la sensibilité à la casse, utilisez le -je drapeau:

$différence -jefichier_test_1.txt fichier_test_2.txt

Pour démonstration, j'ai fait le de Profond dans dans le premier fichier small :

Comme vu dans la première commande, la différence est indiquée ; tout en utilisant -je cette différence a été supprimée.

Quelques autres options utiles du différence commande sont répertoriés ci-dessous :

Option La description
Cette option traite tous les fichiers comme des fichiers texte
-B Il ignore la modification où les lignes sont toutes vides
-ET Cette option ignore l'expansion des onglets
-JE Il ignore les changements où toutes les lignes correspondent
-s Donne une sortie lorsque deux fichiers sont identiques
-dans Il ignore tous les espaces blancs
-AVEC Il ignore les espaces blancs à la fin de la ligne

Comment utiliser l'éditeur Vim pour comparer deux fichiers :

Une autre méthode pour comparer deux fichiers consiste à utiliser le vimdiff commander. Pour cela, vous devez avoir vim installé :

$sudoapteinstaller je suis venu

Maintenant, pour comparer deux fichiers, utilisez :

$vimdiff fichier_test_1.txt fichier_test_2.txt

Les deux fichiers seront ouverts côte à côte. La partie qui ne correspond pas sera mise en évidence :

Comment comparer deux fichiers à l'aide de colordiff :

Une autre approche est une sorte d'extension de la différence commander. Vous pouvez rendre la comparaison plus identifiable en y ajoutant des couleurs. Pour installer utiliser :

$sudoapteinstallercouleurdiff

Pour comparer des fichiers, utilisez :

$colordiff fichier_test_1.txt fichier_test_2.txt

Vous pouvez remplacer différence avec couleurdiff pour obtenir la sortie standard du différence commande au format coloré.

Conclusion:

Pour comparer des fichiers sous Linux et même sous macOS, un utilitaire utilisé s'appelle le diff. L'utilitaire diff compare deux fichiers et donne des informations sur les différences entre les deux fichiers. Les développeurs utilisent principalement la commande diff pour créer des fichiers de correctifs.

Dans ce guide, nous avons discuté en détail des différence et comment l'utiliser pour comparer deux fichiers avec des options différentes. Nous avons également appris à utiliser couleurdiff pour rendre les différences de fichiers plus reconnaissables. Mais si vous trouvez un utilitaire basé sur un terminal difficile à utiliser, il existe également des outils basés sur une interface graphique, tels que Kompare, DiffMerge, Meld - Diff Tool et Diffuse - GUI Giff Tool.