Linux命令教程

Linux提供了 comm 命令,以便逐行比较两个已排序的文件。使用comm命令最重要的一点是这两个文件应该已经被排序了。comm命令最早是在1973年为Unix操作系统创建的,并在20世纪80年代末流行起来。最早出现在Unix版本4中。comm命令提供了与diff命令非常相似的功能。作为一个基本的工具,它不会定期更新,并且版本在很长一段时间内保持稳定。

null

comm命令语法

comm命令处理两个文件,但从命令行读取的输入除外。因此comm命令的语法有两个文件和选项,如下所示。

comm OPTIONS FILE1 FILE2
  • 选项 用于更改比较操作,如显示相同和唯一的行等。
  • 文件1 是与FILE2比较的第一个文件。
  • 文件2 是与FILE1比较的第二个文件。

comm命令参数

comm是一个简单的Linux命令,它提供了如下几个选项。

参数 说明
-1 不显示第一个文件唯一行
-2 不显示第二个文件唯一行
-3 显示公用行(两个文件都存在)
–检查订单 检查文件是否正确排序
–无检查命令 不要检查文件是否正确排序
–输出delimeter 为输出设置分隔符
–总计 显示摘要信息
-z轴 以NUL终止,而不是换行
–帮助 打印帮助信息
–版本 打印版本信息
comm命令参数

比较两个排序的文件

让我们从一个简单的例子开始,我们将检查两个正确排序的文件。下面的示例将比较两个文件并打印三列作为输出。我们不会提供任何参数。我们有以下文件名为 file1.txt file2.txt .

aaalinuxtect.compoftut.compythontect.comwindowstect.comwisetut.com

file2.txt的内容如下所示。

linuxtect.compoftut.compythontect.comwindowstect.comwisetut.comwww

我们将使用以下命令比较file1.txt和file2.txt。

$ comm file1.txt file2.txt
图片[1]-Linux命令教程-yiteyi-C++库
Linux comm命令比较两个文件内容

从输出中可以看到,“aaa”行只存在于file1.txt中,“www”行只存在于file2.txt中。所有其他行同时存在于file1.txt和file2.txt中。根据输出提供的打印到第一列的第一文件唯一行,打印到第二列的第二文件唯一行和公共行被打印到第三列。而且,每一列都用一个 标签 .

相关文章: 如何在ubuntulinux上创建新的用户帐户?

不显示第一个文件唯一行

我们可以使用 -1 用于隐藏第一个文件唯一行的选项或参数。这将只打印两列,其中第一列是第二个文件的唯一行,第二列是两个文件的公共行或相同行。

$ comm -1 file1.txt file2.txt
图片[2]-Linux命令教程-yiteyi-C++库
不显示第一个文件唯一行

不显示第二个文件唯一行

我们可以使用 -2 选项或参数以隐藏第二个文件唯一行。这将只打印两列,其中第一列是第二个文件唯一行,第二列是公共行或两个文件中存在的相同行。

$ comm -1 file1.txt file2.txt

仅显示唯一行

如果只需要显示两个文件的唯一文件,可以使用 -3 打印唯一行但不打印相同行的选项。

$ comm -3 file1.txt file2.txt
图片[3]-Linux命令教程-yiteyi-C++库
仅显示唯一行

显示相同和唯一的行数

这个 --total 选项可用于显示关于文件1的唯一行数、文件2的唯一行数以及两个文件中的相同行数。

$ comm --total file1.txt file2.txt
图片[4]-Linux命令教程-yiteyi-C++库
显示相同和唯一的行数

差异与通信

diff和comm命令提供了非常相似的功能,这通常会导致比较。通常,diff命令提供了更多功能。comm命令最适合在脚本文件中使用,以便进行更简单的操作和比较。

© 版权声明
THE END
喜欢就支持一下吧
点赞0 分享