comm |
Commun |
---|---|
Linux | Externe |
Syntaxe
comm [-1] [-2] [-3 ] file1 file2 |
Paramètres
Nom | Description |
---|---|
--help | Ce paramètre permet d'afficher l'aide de cette commande et quitte immédiatement après. |
--version | Ce paramètre permet d'afficher les informations de version de cette commande et quitte immédiatement après. |
-1 | Ce paramètre permet de ne pas afficher la colonne de gauche. |
-2 | Ce paramètre permet de ne pas afficher la colonne colonne de droite. |
-3 | Ce paramètre permet de ne pas afficher les deux colonnes. |
file1 | Ce paramètre permet d'indiquer le fichier à comparer dans la colonne de gauche. |
file2 | Ce paramètre permet d'indiquer le fichier à comparer dans la colonne de droite. |
Description
Cette commande permet de sélectionner ou rejeter des lignes communes dans deux fichiers.
Remarques
- Comparaison de deux fichiers ligne par ligne : La commande comm compare deux fichiers triés ligne par ligne et produit trois colonnes dans sa sortie :
- Colonne 1 : lignes uniques au premier fichier
- Colonne 2 : lignes uniques au deuxième fichier
- Colonne 3 : lignes communes aux deux fichiers
- Utilisation des fichiers triés pour des résultats corrects : comm suppose que les fichiers sont triés au préalable. Si les fichiers ne sont pas triés, la sortie sera incorrecte. Vous pouvez trier les fichiers avant de les passer à comm :
- Options pour masquer des colonnes spécifiques : Avec l'option -1, -2, ou -3, on peut masquer respectivement la première, la deuxième ou la troisième colonne
dans la sortie :
- comm -1 fichier1.txt fichier2.txt → masque les lignes uniques du premier fichier
- comm -2 fichier1.txt fichier2.txt → masque les lignes uniques du deuxième fichier
- comm -3 fichier1.txt fichier2.txt → masque les lignes communes aux deux fichiers
Cela est utile pour filtrer les informations spécifiques selon les besoins.
- Comparaison entre des fichiers de tailles différentes : comm peut comparer des fichiers de tailles différentes sans problème. Par exemple, si un fichier contient des lignes supplémentaires, comm l'indiquera dans la colonne dédiée.
- Utilisation avec des entrées provenant d'autres commandes : Il est courant d'utiliser comm avec des sorties de commandes dans un pipeline. Par exemple, pour comparer les utilisateurs connectés à votre système et ceux d'un fichier externe :
- Trouver des différences entre deux fichiers texte : Si vous souhaitez trouver uniquement les lignes présentes dans un fichier mais absentes de l'autre, vous pouvez utiliser comm -2 -3 pour supprimer les colonnes communes et celles du deuxième fichier :
- Comparaison de fichiers contenant des doublons : comm ne gère pas bien les lignes en double dans un même fichier. Pour obtenir des résultats précis, il est recommandé de supprimer les doublons avant de comparer :
- Limitation à l'absence de différence dans l'ordre des lignes : comm compare les fichiers lorsque l'ordre des lignes est important. Il ne gère pas les différences de contenu au-delà de la simple comparaison ligne par ligne. Si les fichiers ont le même contenu mais dans un ordre différent, comm ne les considérera pas comme égaux. Dans ce cas, un tri préalable est essentiel, comme expliqué précédemment :
Exemple :
comm fichier1.txt fichier2.txt |
comm <(sort fichier1.txt) <(sort fichier2.txt) |
Cela garantit que la comparaison se fait correctement.
Exemple :
comm fichier1.txt fichier2.txt |
Même si fichier1.txt contient plus de lignes que fichier2.txt, comm gérera correctement cette différence.
comm <(who) <(cat utilisateurs.txt) |
Cela permet de comparer les utilisateurs en ligne avec une liste préexistante sans avoir à créer de fichiers temporaires.
comm -2 -3 fichier1.txt fichier2.txt |
Cela vous donne une liste des lignes uniques du premier fichier.
sort fichier1.txt | uniq > fichier1_sans_doublons.txt sort fichier2.txt | uniq > fichier2_sans_doublons.txt comm fichier1_sans_doublons.txt fichier2_sans_doublons.txt |
comm <(sort fichier1.txt) <(sort fichier2.txt) |
Voir également
Système d'exploitation - Linux - Références de commandes et de programmes - cmp
Système d'exploitation - Linux - Références de commandes et de programmes - diff
Système d'exploitation - Linux - Références de commandes et de programmes - sort
Système d'exploitation - Linux - Références de commandes et de programmes - uniq