Maison >Tutoriel système >Linux >Comparez deux fichiers triés en utilisant la commande 'comm'

Comparez deux fichiers triés en utilisant la commande 'comm'

WBOY
WBOYavant
2024-01-08 14:50:27906parcourir
La commande
Présentationcomm de Linux permet aux utilisateurs de comparer deux fichiers triés ligne par ligne. Dans ce didacticiel, nous aborderons cet outil de ligne de commande à l'aide de quelques exemples faciles à comprendre. Avant de commencer, veuillez noter que tous les exemples mentionnés dans ce tutoriel ont été testés sur la version Ubuntu 16.04LTS. .

L'exemple suivant vous montrera comment fonctionne la commande comm. .

比较两个排序好的文件的方法—— comm

Comment utiliser comm pour comparer deux fichiers triés

Pour utiliser la commande comm pour comparer deux fichiers triés, transmettez simplement leurs noms en arguments à la commande comm . Voici la syntaxe habituelle :

comm [name-of-first-file] [name-of-second-file]

Par exemple, supposons que file1 et file2 soient les deux fichiers dans ce cas. Le premier contient les lignes suivantes :

001
056
127
258

Ce dernier contient les lignes suivantes :

002
056
167
369

À l'heure actuelle, le résultat de la commande comm est le suivant :

comm file1 file2

比较两个排序好的文件的方法—— comm

Vous pouvez voir que la sortie contient 3 colonnes. La première colonne est ce qui est contenu uniquement dans file1, la deuxième colonne est ce qui est contenu uniquement dans file2, et enfin, la troisième colonne est ce qui est contenu dans les deux fichiers.

Comment ne pas afficher certaines colonnes dans la sortie de la commande comm

Si vous le souhaitez, vous ne pouvez pas afficher certaines colonnes dans la sortie de la commande comm. Vous disposez de trois options de ligne de commande disponibles pour cette fonctionnalité : -1, -2 et -3. Comme vous pouvez le deviner, ces nombres représentent les colonnes que vous ne souhaitez pas afficher.

Par exemple, la commande suivante n'affichera pas la troisième colonne dans l'exemple ci-dessus :

comm -3 file1 file2

比较两个排序好的文件的方法—— comm

Donc, vous pouvez voir qu'il n'y a aucune sortie dans la troisième colonne.

Notez que vous ne pouvez pas afficher plusieurs colonnes en même temps avec une seule commande. Par exemple :

comm -12 file1 file2

La commande ci-dessus n'affichera pas les première et deuxième colonnes.

Comment utiliser la commande comm pour comparer deux fichiers non triés

Comme nous le savons, comm ne fonctionne que sur les fichiers triés. S'il s'avère que l'un des fichiers n'est pas trié, un message sera généré dans la sortie pour en informer l'utilisateur. Par exemple, nous échangeons la première et la deuxième lignes de file1 et comparons avec file2. Voici le résultat de la commande :

比较两个排序好的文件的方法—— comm

Vous pouvez voir que cette commande produit une sortie nous indiquant : file1 n'est pas encore trié. À ce stade, si vous ne souhaitez pas que l'outil vérifie si l'entrée est triée, vous pouvez utiliser l'option --nocheck-order :

comm --nocheck-order file1 file2

比较两个排序好的文件的方法—— comm

Vous pouvez voir que le message d'invite qui apparaissait précédemment a disparu.

Remarque, si vous souhaitez indiquer explicitement à la commande comm de vérifier si le fichier d'entrée est trié, vous pouvez utiliser l'option --check-order.

如何用自定义字符串分隔comm 命令的输出列

默认情况下,comm 命令的输出列之间是以空格分隔的。然而,如何你想使用一个自定义字符串作为分隔符,那么你可以使用 --output-delimiter选项。使用该选项时需要指定你想用来作为分隔符的字符串。

comm --output-delimiter=+ file1 file2

比如,我们使用加号来作为分隔符:

比较两个排序好的文件的方法—— comm

如何使 comm 的输出行以 NUL字符终止

默认情况下,comm 命令的输出行以新行终止。然而,如果你想,那么你可以改为以 NUL 字符终止,只需要使用-z 选项即可:

comm -z file1 file2
结论

comm 命令并没有特别多的特性性,我们在这儿已经讨论了它的绝大多数命令行选项。只需要理解和练习在这篇教程中讨论的内容,那么你便可以在日常工作中知道如何使用这个工具了。如果你有任何问题或者疑问,请前往该命令的 man 手册,或者在下面评论。


Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!

Déclaration:
Cet article est reproduit dans:. en cas de violation, veuillez contacter admin@php.cn Supprimer