首页 >> 学习 >> Linux常用命令 >> comm
comm命令

本节重要性:★★★☆☆    本节难度:★★★★☆

如果比较两个简单的文件的不同之处,肉眼也可以;但如果比较两个很大的文件,人工比较不仅费时,还很容易出错。Linux为我们提供了两个比较文件内容的工具:comm和diff(分别是common和different的缩写),可以快速比较两个文件的异同,尤其是两个大文件只有细微的区别时更有用。在这一节我们先来学习comm,下一节再来学习diff。

命令用途

比较两个排序好的文件

命令格式

comm [option] file1 file2

常用选项

-1	不显示文件1特有的行
-2	不显示文件2特有的行
-3	不显示2个文件共有的行

常见用法

首先我们建两个文件,第一个文件的内容是1、2、3、4,每行一个数字,第二个文件是1、2、2、4:

[peter@ibi98 ~]$ cat >file1
1
2
3
4
[peter@ibi98 ~]$ cat >file2
1
2
2
4
[peter@ibi98 ~]$ cat file1
1
2
3
4
[peter@ibi98 ~]$ cat file2
1
2
2
4

用comm比较两个文件:

[peter@ibi98 ~]$ comm file1 file2
                1
                2
        2
3
                4

结果有3列,第1列是文件1特有的行,第2列是文件2特有的行,第3列是两个文件共有的行。

下面我们看一下3个选项的效果:

[peter@ibi98 ~]$ comm -1 file1 file2
        1
        2
2
        4
[peter@ibi98 ~]$ comm -2 file1 file2
        1
        2
3
        4
[peter@ibi98 ~]$ comm -3 file1 file2
        2
3

-1选项不显示文件1特有的行(上面结果的第1列);-2选项不显示文件2特有的行(上面结果的第2列);-3选项不显示两个文件共有的行(上面结果的第3列)。您也可以把这些选项联合用:

[peter@ibi98 ~]$ comm -12 file1 file2
1
2
4
[peter@ibi98 ~]$ comm -13 file1 file2
2
[peter@ibi98 ~]$ comm -23 file1 file2
3

-12选项只显示两个文件共有的行(不显示文件1特有的行和文件2特有的行);-13只显示文件2特有的行;-23只显示文件1特有的行。

设想一下,如果有两个文件各有10000行,其中只有一行不一样,comm一下,马上就可以知道了!

<<上一节  下一节>>