您的位置首页百科问答

comm命令的使用方法

comm命令的使用方法

的有关信息介绍如下:

comm命令的使用方法

Linux 中的comm命令可以让用户按行比较两个已经排序好的文件。在本教程中,我们将使用一些浅显易懂的例子来讨论这个命令行工具。在开始之前,请注意,本教程中提到的所有例子都已经在 Ubuntu 16.04LTS 版本中测试过。下面的例子将会告诉你comm命令是如何工作的。。

使用comm命令比较两个排序好的文件,只需要把它们的名字作为comm命令的参数。下面是通常的语法:

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

比如,假设file1和file2是这种情况下的两个文件。前者包含下面几行内容:

001056127258

而后者包含下面几行内容:

002056167369

此时,comm命令的输出如下图所示:

comm file1 file2

如何不输出 comm 命令输出中的某些列

如果你想,你可以不输出comm命令输出中的某些列。对于该特性,你有三个命令行选项可用:-1、-2和-3。正如你所猜想的,这些数字表示你不想输出的列。本文提到的工具可以到《Linux就该这么学》这本教材中找到。

比如,下面这个命令将会不输出上面例子中的第三列:

comm -3 file1 file2

如何使用 comm 命令比较两个未排序好的文件

正如我们所知道的,comm只可用于排序好的文件。如果发现其中一个文件未排序好,那么便会在输出中产生一条信息来告诉用户。比如,我们交换file1的第一行和第二行,然后与file2进行比较。下图是该命令的输出

你可以看到,这个命令产生一个输出告诉我们:file1还没有排序好。此时,如果你不想让这个工具检查输入是否已经排序好,那么你可以使用--nocheck-order选项:

comm --nocheck-order file1 file2

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

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

comm --output-delimiter=+ file1 file2

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

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

默认情况下,comm命令的输出行以新行终止。然而,如果你想,那么你可以改为以

NUL

字符终止,只需要使用-z选项即可:

comm -z file1 file2