Dans cet article, nous allons expliquer l'utilisation de la commande Comm dans Linux avec une explication détaillée.
Comment utiliser la commande Comm dans Linux
La commande Comm peut être utilisée pour comparer deux fichiers ligne par ligne, la syntaxe générale de l'utilisation de la commande Comm:
$ comm [Option] file_name1 file_name2
La syntaxe de commande ci-dessus affichera le résultat en trois colonnes; La première colonne affichera les lignes uniques du fichier1, la deuxième colonne affichera les lignes uniques du fichier2, et la troisième colonne affichera les lignes communes des deux fichiers.
Nous pouvons également utiliser certaines options avec la commande Comm; Certaines options couramment utilisées sont:
Options | Explication |
-1 | Il n'affichera pas la première colonne du résultat, qui contient les lignes uniques du fichier1 |
-2 | Il n'affichera pas la deuxième colonne du résultat, qui contient les lignes uniques du fichier2 |
-3 | Il n'affichera pas la troisième colonne du résultat, qui contient les lignes communes des deux fichiers; file1 et file2 |
-commande de contrôle | Il vérifiera que toutes les lignes des deux fichiers sont correctement triées ou non |
-ordre de nocheck | Il ne vérifiera pas l'ordre de tri et affichera simplement les résultats |
-aider | Il affichera une invite de message d'aide et sortira |
-version | Il affichera la version des informations et des sorties |
-total | Il affichera le nombre total de lignes présentes dans chaque colonne du résultat |
-z, -zer-délimiter | Il affichera les fichiers séparément au lieu des colonnes; La valeur de zéro délimiteurs est nul |
-sortie-délimiter = [n'importe quel caractère] | Il remplacera les «espaces» dans les résultats en utilisant le caractère que vous souhaitez y mettre |
Pour comprendre toutes ces options, nous considérerons deux fichiers texte avec le nom; mytestfile1.txt et mytestfile2.txt, dont le contenu peut être affiché à l'aide des commandes:
$ cat mytestfile1.SMS
$ cat mytestfile2.SMS
Tout d'abord, nous comparerons les deux fichiers à l'aide de la commande Comm sans aucune option, à cet effet, nous devons utiliser la commande:
$ com mytestfile1.txt mytestfile2.SMS
Comme nous le savons, la commande Comm est applicable sur les fichiers triés, et les fichiers donnés dans la commande ne sont pas triés, il a donc généré les avertissements «fichiers non triés», pour supprimer ces commentaires, nous utiliserons le «-nocheck-ordre» Flag, qui ignorera la vérification de l'ordre de tri et affichera les résultats:
$ Comm - NOCHECK-ORDER MYTESTFILE1.txt mytestfile2.SMS
Dans l'image ci-dessus, nous avons marqué trois colonnes pour une meilleure compréhension des résultats, la première colonne a affiché les lignes uniques de MyTestFile1.txt qui n'est que «fedora», la deuxième colonne affichait les lignes uniques de MyTestFile2.TXT qui n'est que «Debian», et la dernière colonne affichait les lignes communes des deux fichiers. Si nous voulons afficher la colonne 1 (lignes uniques de MyTestFile1.txt) et la colonne 3 (lignes communes des deux fichiers), nous supprimerons la colonne 2 en utilisant le drapeau "-2":
$ Comm -2 - MyTestFile de Nocheck-Order1.txt mytestfile2.SMS
De même, nous pouvons supprimer à la fois la colonne 1, la colonne 2 et afficher la colonne 3 uniquement (contenant les lignes communes des deux fichiers) en exécutant la commande:
$ Comm -12 - MyTestFile1 de Nocheck-Order1.txt mytestfile2.SMS
La sortie n'a affiché que la troisième colonne du résultat, afin de découvrir le nombre total de lignes de chaque colonne, utilisez la commande:
$ Comm - Total - Nocheck-Order MyTestFile1.txt mytestfile2.SMS
Pour vérifier si l'ordre de tri des deux fichiers est soit dans le bon ordre ou non, exécutez la commande Comm à l'aide du drapeau «-check-ordre»:
$ Comm --Check-Order MyTestFile1.txt mytestfile2.SMS
Les résultats montrent que le fichier 1 n'est pas dans l'ordre trié car les noms des fichiers ne sont pas organisés par ordre alphabétique, ni dans l'ordre croissant ou l'ordre descendant, de même, l'indicateur «-zero-délicat» est utilisé:
$ Comm - MyTestFile1 à terminaison duzero.txt mytestfile2.SMS
De même, nous pouvons utiliser le «-output-delimiter = **» par la commande Comm pour remplacer l'espace par «étoile (*)»:
$ Comm --output-Demiter = ** - Nocheck-Order MyTestFile1.txt mytestfile2.SMS
Pour vérifier la version de la commande Comm:
$ Comm --version
Si vous voulez en savoir plus sur la commande Comm, vous pouvez vérifier son manuel en utilisant la commande:
$ man com
Conclusion
La commande Comm est utilisée pour comparer les lignes des fichiers triés dans Linux, cependant, il existe également d'autres façons pour comparer des fichiers tels que la commande diff et l'utilisation de l'éditeur VIM. La commande Comm est facile à utiliser et recommandée lorsque les fichiers contiennent des scripts et seule une comparaison plus simple est nécessaire. Dans cet article, nous avons discuté brièvement de la commande Comm et de ses différentes options à l'aide d'exemples.