如何在 Linux 系统中逐行比较两个已排序的文件?


要比较两个已排序的文件,我们在 Linux 系统中使用 comm 命令。

comm 命令用于逐行比较两个已排序的文件,并将三列写入标准输出。前两列包含第一个文件和第二个文件中独有的行,最后一列包含两个文件中共有的行。列以制表符分隔。comm 命令的功能类似于 diff 命令。

语法

comm 命令的通用语法如下:

comm [OPTION]... FILE1 FILE2

comm 命令中可用选项的简要说明。

序号选项及说明
1-1
抑制第一列(FILE1 中独有的行)
2-2
抑制第二列(FILE2 中独有的行)
3-3
抑制第三列(FILE1 和 FILE2 中共有的行)
4--check-order
检查输入是否已正确排序,即使所有输入行都是可配对的
5--nocheck-order
不要检查输入是否已正确排序
6--output-delimiter=STR
用给定的字符串 STR 分隔列
7--total
显示摘要
8-z, --zero-terminated
行分隔符为 NULL,而不是换行符
9--help
显示帮助消息,然后退出。
10--version
它提供有关版本的信息,然后退出。

在这里,我们将比较两个已排序的文件,并使用 comm 命令而不带任何选项,并在标准输出中以列形式显示所有内容。

vikash@tutorialspoint: ~/Documents$ comm file_first file_second
Abhishek
Anand
   Annie
   Bidu
Bruce
Celesy
   Chiku
   Sayani
Vikash
   Wandra
vikash@tutorialspoint: ~/Documents$

在这里,我们将比较两个已排序的文件,并使用 comm 命令的 -1 选项抑制第一列。

vikash@tutorialspoint: ~/Documents$ comm -1 file_first file_second
Annie
Bidu
Chiku
Sayani
Wandra
vikash@tutorialspoint: ~/Documents$

现在,我们将比较两个已排序的文件,并使用 comm 命令的 -2 选项抑制第二列。

vikash@tutorialspoint: ~/Documents$ comm -2 file_first file_second
Abhishek
Anand
Bruce
Celesy
Vikash
vikash@tutorialspoint: ~/Documents$

要查看有关 comm 命令的更多信息,我们使用 comm 命令的 –help 选项,如下所示。

$ comm --help

要检查 comm 命令的版本信息,我们使用命令的 –version 选项,如下所示

$ comm --version

更新于: 2021年6月30日

2K+ 阅读量

启动您的 职业生涯

通过完成课程获得认证

开始学习
广告