GNU/Linux >> Tutoriels Linux >  >> Linux

Commande "comm" sous Linux avec des exemples

Il est souvent utile de comparer les versions des fichiers texte. Pour les administrateurs système et les développeurs de logiciels, cela est particulièrement important. Un administrateur système peut, par exemple, avoir besoin de comparer un fichier de configuration existant à une version précédente pour diagnostiquer un problème système. De même, un programmeur a souvent besoin de voir quelles modifications ont été apportées aux programmes au fil du temps.

La communication affiche une comparaison ligne par ligne de deux fichiers triés. La première des trois colonnes qu'il affiche répertorie les lignes trouvées uniquement dans le fichier1, la deuxième colonne répertorie les lignes trouvées uniquement dans le fichier2 et la troisième répertorie les lignes communes aux deux fichiers. La syntaxe de base de la commande "comm" est :

# comm [options] file1 file2

Argumentation

Les arguments file1 et file2 sont les noms de chemin des fichiers que comm compare. L'utilisation d'un trait d'union (–) à la place de fichier1 ou fichier2 oblige comm à lire l'entrée standard au lieu de ce fichier.

Options

Vous pouvez combiner les options. Sans option, comm produit une sortie à trois colonnes.

Options Fonction
-1 N'affiche pas la colonne 1 (n'affiche pas les lignes trouvées uniquement dans le fichier1).
-2 N'affiche pas la colonne 2 (n'affiche pas les lignes trouvées uniquement dans le fichier2).
-3 N'affiche pas la colonne 3 (n'affiche pas les lignes trouvées dans les deux fichiers).
-i Comparaison de lignes insensible à la casse.
– -vérifier-commande Vérifiez l'ordre de l'entrée, même si toutes les lignes d'entrée sont appariables
– -nocheck-order Ignorer l'ordre de saisie
– -output-delimiter=STR délimite les colonnes avec le délimiteur "STR"
– -aide Affiche un menu d'aide
– version Afficher les informations de version de la commande
Remarque :Si les fichiers n'ont pas été triés, la communication ne fonctionnera pas correctement. Les lignes de la deuxième colonne sont précédées d'une tabulation et celles de la troisième colonne sont précédées de deux tabulations. L'état de sortie indique si la communication s'est terminée normalement (0) ou anormalement (pas 0).

Exemples d'utilisation de la commande "comm" sous Linux

Exemple 1 :Utilisation de base

Voyons un exemple de base de la commande "comm" pour comparer 2 fichiers triés. Les fichiers sont comme indiqué ci-dessous :

# cat file1
aa
bb
cc
dd
# cat file2
cc
xx
yy
zz

La commande comm compare les fichiers ligne par ligne et affiche toutes les lignes identiques. Par exemple :

# comm file1 file2
aa
bb
		cc
dd
	xx
	yy
	zz

Cette sortie de commande s'affiche sur trois colonnes :la colonne 1 affiche uniquement les lignes du fichier 1 (aa, bb, dd), la colonne 2 affiche chaque ligne uniquement du fichier 2 (xx, yy, zz) et la colonne 3 affiche chaque ligne identique entre les deux fichiers (cc). Il s'agit d'une comparaison beaucoup plus détaillée qu'avec diff, et le résultat peut être écrasant lorsque tout ce que vous voulez est de trouver ou de vérifier un ou deux changements simples. Cependant, cela peut être extrêmement utile lorsque vous n'êtes pas très familier avec l'un ou l'autre fichier et que vous voulez voir comment ils se comparent.

Exemple 2 :suppression des colonnes

comm prend en charge les options sous la forme -n où n est 1, 2 ou 3. Lorsqu'elles sont utilisées, ces options spécifient la ou les colonnes à supprimer. Par exemple, si nous voulions afficher uniquement les lignes partagées par les deux fichiers, nous supprimerions la sortie des colonnes 1 et 2 :

# comm -12 file1 file2
cc

De même, vous ne pouvez afficher que les lignes qui ne sont présentes que dans fichier1 et fichier2 respectivement en utilisant les commandes ci-dessous.

# comm -23 file1 file2
aa
bb
dd
# comm -13 file1 file2
xx
yy
zz

Exemple 3 :vérification du tri en entrée

La commande comm fournit 2 options pour vérifier les entrées triées :
1. –vérifier la commande
2. –nocheck-order

Le –chèque-commande L'option vérifie que l'entrée est correctement triée avant la comparaison. Si l'entrée n'est pas triée, vous obtiendrez une erreur comme indiqué ci-dessous :

# comm --check-order file1 file2
aa
bb
cc
dd
	xx
comm: file 2 is not in sorted order

Alors que le –nocheck-order L'option permet la comparaison de fichiers même si l'entrée n'est pas au format trié. Par exemple :

# cat file1
aa
bb
cc
dd
# cat file2
xx
cc
yy
zz
# comm --nocheck-order file1 file2
aa
bb
		cc
dd
	xx
	yy
	zz

Exemple 4 :sortie délimitée

comm fournit également une option pour supprimer la sortie à l'aide du délimiteur fourni par l'utilisateur. Par exemple, au lieu de la sortie délimitée par "tabulation" par défaut, nous pouvons utiliser un délimiteur tel que "|" (tuyau) comme indiqué dans l'exemple ci-dessous :

# comm --output-delimiter="|" file1 file2
aa
bb
||cc
dd
|xx
|yy
|zz

comm V/s diff

com est similaire à diff en ce que les deux commandes comparent deux fichiers. Mais comm peut aussi être utilisé comme uniq; comm sélectionne les lignes en double ou uniques entre deux fichiers triés, tandis que uniq sélectionne les lignes en double ou uniques dans le même fichier trié.


Linux
  1. Commande Linux wc avec exemples

  2. Commande de tri Linux avec exemples

  3. Commande Linux Tee avec exemples

  4. Commande principale Linux avec exemples

  5. Commande JQ sous Linux avec exemples

Commande de CD Linux avec exemples

Commande Linux watch avec exemples

Commande Wait sous Linux avec des exemples

Commande d'exportation Linux avec exemples

Commande IP Linux avec exemples

Commande comm Linux avec exemples