Comment comparer deux fichiers dans Linux

Comment comparer deux fichiers dans Linux
Si vous souhaitez comparer deux fichiers et déchiffrer la différence, une commande appelée «difficulté" est utilisé. Ce guide est axé sur la fourniture de l'utilisation du «difficulté«Commande avec diverses options pour obtenir la différence entre deux fichiers.

Alors, comment le «difficulté»La commande fonctionne réellement? Le "difficulté»Commande compare les deux fichiers et publie une liste de différences entre les deux fichiers. Plus précisément, il donne une liste de modifications qui doivent être effectuées dans le premier fichier pour correspondre au deuxième fichier. Le "difficulté»La commande est également utilisée par les programmeurs pour obtenir 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 "difficulté»La commande donne une sortie en fonction de l'ordre des fichiers.

Comment utiliser la commande «Diff» dans Linux pour comparer les fichiers:

La syntaxe du «difficulté»La commande est mentionnée ci-dessous:

$ Diff [Options] [File1] [File2]

Tout d'abord, créez deux fichiers. Je crée des fichiers texte par le nom de «Test_file_1.SMS" et «Test_file_2.SMS". Ces fichiers contiennent du contenu avec une légère différence:

Utilisez maintenant la commande suivante pour obtenir la différence:

$ Diff Test_file_1.txt test_file_2.SMS

La sortie standard affichait les lignes qui correspondent en fonction de 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] [Étiquette (A, C, D)] [Numéro de ligne du fichier 2]

Il y a trois étiquettes:

  • un - Ajouter: ajouter du contenu dans le premier fichier pour se synchroniser avec le deuxième fichier.
  • c - Modification: indique qu'une modification nécessaire dans le contenu du premier fichier pour correspondre au deuxième fichier.
  • d - Supprimer: supprimer le contenu du premier fichier à correspondre avec le 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 effectuer un changement dans la quatrième ligne du premier fichier pour faire 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 afficher la différence, utilisez le «Diff» commande avec le "-Y" option:

$ diff -y -w 60 test_file_1.txt test_file_2.SMS

Dans la sortie ci-dessus, le contenu de «Test_file_1.SMS" est affiché sur le côté gauche, tandis que le contenu de «Text_file_2.SMS" est affiché 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 afficher la différence, utilisez ce qui suit:

$ diff -y -w 60 - Suppress-Common-lines test_file_1.txt test_file_2.SMS

Comment obtenir la sortie en une seule ligne à l'aide de la commande «Diff»:

Si la méthode étiquetée est difficile à décoder pour vous, il y a une approche plus simple. En utilisant le "-Q" option avec le «Diff» La commande vous donne la sortie en une seule ligne. Eh bien, sans aucune information supplémentaire, cependant:

$ diff -q test_file_1.txt test_file_2.SMS

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 «Test_file_1.SMS" en utilisant:

$ cp test_file_1.txt test_file_3.SMS

Un nouveau fichier sera créé par le nom de «Test_file_3.SMS" contenant le même contenu que «Test_file_1.SMS" a. Maintenant, utilisez:

$ diff -q test_file_1.txt test_file_2.SMS

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

Comment vérifier la différence de fichiers en mode contexte à l'aide de la commande «Diff»:

Pour obtenir la comparaison en mode contexte, le «-C» L'option sera utilisée avec le «Diff» commande:

$ diff -c test_file_1.txt test_file_2.SMS

Disséquons la sortie.

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

La ligne suivante signifie une gamme de lignes considérées 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 correspondre aux deux fichiers.
  • - : La ligne existe dans le premier fichier mais pas dans le deuxième fichier. Essayez de l'insérer dans le deuxième fichier ou de le supprimer du premier pour correspondre aux deux fichiers.
  • ! : La ligne a besoin de modifications 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 contexte mais sans informations redondantes. Le drapeau que nous utilisons est "-U":

$ diff -u test_file_1.txt test_file_2.SMS

Dans la sortie, le premier fichier est indiqué par «-» et le second par «+++». La deuxième ligne montre le nombre de lignes considérées pour la comparaison dans les deux fichiers, puis le contenu à supprimer, ajouté ou modifié avec les symboles avec eux. Il n'y aura pas de symbole avec des lignes similaires dans les deux fichiers.

Comment ignorer la sensibilité des cas lors de l'utilisation de la commande «Diff»:

Si vous souhaitez comparer les fichiers tout en ignorant la sensibilité des caisses, utilisez le "-je" drapeau:

$ diff -i test_file_1.txt test_file_2.SMS

Pour une démonstration, j'ai fait le "D" de "Profond dans" Dans le premier fichier petit:

Comme le montre la première commande, la différence est indiquée; en utilisant "-je" Cette différence a été supprimée.

Quelques autres options utiles du «Diff» La commande est répertoriée ci-dessous:

Option Description
-un Cette option traite tous les fichiers comme des fichiers texte
-B Il ignore la modification où les lignes sont toutes vides
-E Cette option ignore l'expansion de l'onglet
-je Il ignore les changements où toutes les lignes correspondent
-s Donne la sortie lorsque deux fichiers sont identiques
-w Il ignore tout espace blanc
-Z Il ignore l'espace blanc à la fin de la ligne

Comment utiliser VIM Editor pour comparer deux fichiers:

Une autre méthode pour comparer deux fichiers consiste à utiliser le «Vimdiff» commande. Pour cela, vous devez faire installer VIM:

$ sudo apt install vim

Maintenant, pour comparer deux fichiers à utiliser:

$ vimdiff test_file_1.txt test_file_2.SMS

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 du «Diff» commande. Vous pouvez rendre la comparaison plus identifiable en y ajoutant des couleurs. Pour installer l'utilisation:

$ sudo apt installer coordiff

Pour comparer les fichiers, utilisez:

$ Colordiff test_file_1.txt test_file_2.SMS

Vous pouvez remplacer «Diff» avec "Colordiff" Pour obtenir la sortie standard du «Diff» Commande au format coloré.

Conclusion:

Pour comparer les fichiers dans Linux et même dans MacOS, un utilitaire utilisé est appelé «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 en détail discuté du «Diff» commande et comment l'utiliser pour comparer deux fichiers avec des options différentes. Nous avons également appris à utiliser "Colordiff" Pour rendre les différences de fichiers plus reconnaissables. Mais si vous trouvez l'utilité basée sur les terminaux difficiles à utiliser, il existe également des outils basés sur l'interface graphique, tels que Kompare, Diffmerge, MELD - DIFF Tool et diffuse - GUI GIFF Tool.