Linux comm命令教程:如何比较两个文件的内容(附案例详解和注意事项)

220 阅读2分钟

Linux comm命令介绍

comm命令是Linux系统中的一个命令,用于比较两个已排序的文件或流。默认情况下,comm将始终显示三列。第一列显示只在第一个文件中的非匹配项,第二列显示只在第二个文件中的非匹配项,第三列显示两个文件中的匹配项。

Linux comm命令适用的Linux版本

comm命令在大多数Linux发行版中都可以使用,包括但不限于Ubuntu, Debian, Fedora, CentOS等。

Linux comm命令的基本语法

comm [options] file1 file2

这里,file1file2是要比较的两个文件,options是可选的命令行选项。

Linux comm命令的常用选项或参数说明

  • -1:抑制第一列(第一个文件中独有的行)。
  • -2:抑制第二列(第二个文件中独有的行)。
  • -3:抑制第三列(两个文件中共有的行)。
  • --check-order:检查输入是否正确排序。
  • --nocheck-order:不检查输入是否正确排序。
  • --output-delimiter=STR:用字符串STR分隔列。
  • --help:显示帮助信息并退出。
  • --version:输出版本信息并退出。

Linux comm命令的实例

以下是一些comm命令的使用实例:

[linux@bashcommandnotfound.cn ~]$ comm file1.txt file2.txt

上述命令将比较file1.txtfile2.txt两个文件,并输出三列。第一列显示只在file1.txt中的行,第二列显示只在file2.txt中的行,第三列显示两个文件中共有的行。

[linux@bashcommandnotfound.cn ~]$ comm -1 file1.txt file2.txt

上述命令将抑制第一列,只显示file2.txt中独有的行和两个文件中共有的行。

[linux@bashcommandnotfound.cn ~]$ comm -12 file1.txt file2.txt

上述命令将抑制前两列,只显示两个文件中共有的行。

Linux comm命令的注意事项

  • comm命令对大小写敏感,如果需要忽略大小写,可以使用sort命令的-f选项来预处理输入文件。
  • 如果在使用comm命令时遇到bash: comm: command not found错误,可能需要安装coreutils包。在CentOS 7中,可以使用yum install coreutils来安装,而在CentOS 8和其他使用dnf的系统中,可以使用dnf install coreutils来安装。

更多详细内容可以参考:
linux入门学习教程 - Linux入门自学网
Linux comm命令教程(用法详解):如何比较两个已排序文件的差异和相同之处