用comm命令比较两个文件并显示比较结果
comm [OPTION]... FILE1 FILE2
comm命令是GNU coreutils的一个实用命令,用来逐行比较两个已排序文件并且显示比较结果。它显示三列输出:只在文件1中的行、只在文件2中的行和两个文件都有的行。以下是 comm 命令的一些示例。
首先,我们先使用seq命令生成两个文件:
a文件:
seq 1 20 > a
b文件:
seq 3 23 > b
在下面的例子中,我们都会使用--nocheck-order选项,不对排序检查。
- 没有其它选项时的输出:
comm --nocheck-order a b
可以看到第一列显示了只属于第一个文件a的行、第二列显示了只属于第二个文件b的行,第三列显示了两个文件共有的行。
- 不显示只存在第一个文件中的行:
comm --nocheck-order -1 a b
从上面的输出可以看到,第一列显示了只存在于b中的行,第二列显示了a,b共有的行,而只存在于a中的行没有显示出来。
- 不显示只存在第二个文件中的行,把 -1 换成 -2 就行:
comm --nocheck-order -2 a b
- 只显示只存在于第一个文件或只存在于第二个文件的行:
comm --nocheck-order -3 a b
可以看到两个文件共有的行没有输出了,第一列是只存在第一个文件的行,第二列是只存在第二个文件的行。
- 只显示共有的行:
comm --nocheck-order -1 -2 a b
以上就是comm 命令的一些示例,希望对大家有用。