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

下面的例子将会告诉你 comm 命令是如何工做的。。html

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

如何使用 comm比较两个排序好的文件linux

要使用comm 命令比较两个排序好的文件,只须要把它们的名字做为comm 命令的参数。下面是一般的语法:工具

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

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

001
056
127
258

然后者包含下面几行内容:htm

002
056
167
369

此时,comm命令的输出以下图所示:排序

comm file1 file2

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

你能够看到,输出包含 3 列。第一列是仅包含在file1中的内容,第二列是仅包含在 file2 中的内容,最后,第三列是两个文件中均包含的内容。教程

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

若是你想,你能够不输出 comm命令输出中的某些列。对于该特性,你有三个命令行选项可用:-一、-2 和 -3 。正如你所猜测的,这些数字表示你不想输出的列。get

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

comm -3 file1 file2

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

所以,你能够看到,第三列并无输出。

注意,你能够经过一个单一命令同时不输出多列内容。好比:

comm -12 file1 file2

上面这个命令将会不输出第1、二列。

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

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

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

你能够看到,这个命令产生一个输出告诉咱们:file1 尚未排序好。此时,若是你不想让这个工具检查输入是否已经排序好,那么你可使用 --nocheck-order 选项:

comm --nocheck-order file1 file2

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

你能够看到,前面出现的提示信息已经消失了。

注意,若是你想明确告诉 comm 命令来检查输入文件是否排序好,那么你可使用 --check-order选项。

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

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

comm --output-delimiter=+ file1 file2

好比,咱们使用加号来做为分隔符:

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

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

默认状况下,comm 命令的输出行以新行终止。然而,若是你想,那么你能够改成以

NUL

字符终止,只须要使用-z 选项便可:

comm -z file1 file2

结论

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

本文地址:http://www.linuxprobe.com/comm-sort.html

相关文章
相关标签/搜索