GNU/Linux >> Tutoriels Linux >  >> Linux

Tutoriel de la commande Linux cmp pour les débutants (7 exemples)

Quel que soit votre rôle, si votre travail habituel implique de faire des choses sur la ligne de commande sous Linux, vous pouvez vous retrouver dans une situation où vous voudriez comparer deux fichiers à l'aide d'un utilitaire de ligne de commande. Il existe plusieurs outils de ligne de commande qui vous permettent de le faire, et l'un d'entre eux est le 'cmp ' commande.

Dans ce didacticiel, nous aborderons 'cmp' à travers des exemples faciles à comprendre. Mais avant cela, il convient de mentionner que tous les exemples et instructions mentionnés dans ce didacticiel ont été testés sur Ubuntu 16.04LTS.

commande cmp

La commande 'cmp' permet d'effectuer une comparaison octet par octet de deux fichiers. L'utilitaire fournit plusieurs fonctionnalités sous la forme d'options de ligne de commande. Dans ce didacticiel, nous discuterons de certaines des options clés qui vous donneront (un débutant) une bonne idée du fonctionnement de l'outil.

1. Comment comparer deux fichiers en utilisant cmp

Dans sa forme la plus simple, vous pouvez utiliser 'cmp' de la manière suivante :

cmp [file1-name] [file2-name]

Comme déjà mentionné, l'outil compare deux fichiers octet par octet. Lorsqu'une différence est trouvée, l'outil s'arrête et produit une sortie indiquant dans quelle ligne et dans quel octet se trouve la différence.

Par exemple :

cmp file1.txt file2.txt

Comme vous pouvez le voir dans la capture d'écran ci-dessus, la sortie indique clairement que les fichiers diffèrent à l'octet 20 de la ligne 1.

2. Comment faire en sorte que cmp imprime des octets différents

Si vous le souhaitez, vous pouvez également faire en sorte que 'cmp' affiche les différents octets dans sa sortie. Cela peut être fait en utilisant le -b option de ligne de commande.

cmp -b [file1] [file2]

Par exemple :

cmp -b file1.txt  file2.txt

Dans ce cas, comme vous pouvez le voir dans la capture d'écran ci-dessus, la différence est dans le 17e octet, qui est 'l' dans file1.txt et 'i' dans file2.txt. Les valeurs 154 et 151 sont respectivement les valeurs de ces octets.

3. Comment faire en sorte que cmp saute certains octets initiaux des deux fichiers

Si vous le souhaitez, vous pouvez également faire en sorte que 'cmp' saute un nombre particulier d'octets initiaux des deux fichiers, puis les compare. Cela peut être fait en spécifiant le nombre d'octets comme argument du -i option de ligne de commande.

cmp -i [octets à ignorer] [fichier1] [fichier2]

Par exemple :

cmp -i 10 fichier1.txt fichier2.txt

Notez que dans de tels cas (où vous utilisez -i pour sauter des octets), l'octet auquel la comparaison commence est traité comme l'octet numéro zéro.

Ensuite, l'outil vous permet également d'ignorer un nombre différent d'octets des deux fichiers. Cela peut être fait de la manière suivante :

cmp -i [bytes-to-skip-from-first-file] : [bytes-to-skip-from-second-file] [file1] [file2]

Par exemple :

cmp -i 4:7 file1.txt file2.txt

4. Comment faire en sorte que cmp affiche la position (et la valeur) des octets pour tous les octets différents

Si vous le souhaitez, vous pouvez également faire en sorte que la commande 'cmp' affiche la position et la valeur de l'octet pour tous les octets différents. Cette fonctionnalité est accessible en utilisant le -l option de ligne de commande.

cmp -l [file1] [file2]

Par exemple :

cmp -l file1.txt  file2.txt

La première colonne de la sortie (exemple ci-dessus) représente la position (numéro d'octet) des octets différents. La deuxième colonne représente la valeur d'octet de l'octet différent dans le premier fichier, tandis que la troisième colonne représente la valeur d'octet de l'octet différent dans le deuxième fichier.

5. Comment limiter le nombre d'octets à comparer

L'outil vous permet également de limiter le nombre d'octets que vous souhaitez comparer - par exemple, vous pouvez comparer au maximum 25 ou 50 octets. Cela peut être fait en utilisant le -n option de ligne de commande.

$ cmp -n [nombre-d'octets-à-comparer]  [fichier1] [fichier2]

Par exemple :

$ cmp -n 25 fichier1.txt fichier2.txt

6. Comment afficher le compteur de progression lors de l'utilisation de la commande cmp

Lors de la comparaison de fichiers volumineux (ou même de partitions) à l'aide de 'cmp', vous souhaiterez peut-être voir la progression de la comparaison en cours. Cela peut être fait en utilisant la commande 'pv' avec la commande 'cmp'. Voici le modèle de commande que vous pouvez utiliser :

$ pv [file1] | cmp -l [file2] > [output-file]

Par exemple :

$ pv file1.txt | cmp -l file3.txt > output.txt

Notez que le fichier 'output.txt' contiendra toute la sortie produite par la commande 'cmp'. Le compteur de progression (que vous pouvez voir dans la capture d'écran ci-dessus) est produit par la commande 'pv'.

La commande 'pv' n'est généralement pas pré-installée sous Linux (ce n'est pas le cas sur Ubuntu du moins). Mais vous pouvez facilement l'installer en utilisant la commande suivante :

sudo apt-get install pv

7. Comment faire en sorte que 'cmp' supprime la sortie

L'outil vous permet également de supprimer la sortie qu'il produit normalement. Cela peut être fait en utilisant le -s option de ligne de commande.

$ cmp -s [file1] [file2]

Par exemple :

$ cmp -s file1.txt file2.txt

Cette option peut être utile lors de l'utilisation de l'utilitaire 'cmp' dans les scripts. Par exemple, selon que les fichiers sont identiques ou non (ce que l'on peut savoir en accédant au code de sortie de la commande), vous pouvez afficher un message personnalisé au lieu de la sortie que l'outil produit normalement.

Conclusion

Nous avons discuté de la plupart des options de commande 'cmp' dans cet article, il vous suffit donc de les pratiquer afin de commencer à utiliser l'outil dans votre travail quotidien. En cas de doute ou de question, reportez-vous à la page de manuel 'cmp'.


Linux
  1. Tutoriel de commande cd Linux pour les débutants (8 exemples)

  2. Tutoriel de commande Linux comm pour les débutants (5 exemples)

  3. Tutoriel de commande Linux df pour les débutants (8 exemples)

  4. Tutoriel de commande de date Linux pour les débutants (8 exemples)

  5. Tutoriel de commande de nom d'hôte Linux pour les débutants (5 exemples)

Tutoriel Linux who Command pour débutants (8 exemples)

Tutoriel de commande Linux nl pour les débutants (7 exemples)

Tutoriel de commande Linux nm pour les débutants (10 exemples)

Tutoriel de commande Linux OD pour les débutants (6 exemples)

Tutoriel de commande Linux w pour débutants (5 exemples)

Tutoriel de commande Linux ss pour les débutants (8 exemples)