Linux/UNIX显示在两个文件中共有的行

时间:2020-01-09 10:37:41  来源:igfitidea点击:

问题描述:我试图使用diff命令,但是它不起作用。
是否要显示file1和file2共有的行?
我该怎么做?

解决方法:使用comm命令;它逐行比较两个排序的文件。
如果没有选项,则产生三列输出。
第一列包含FILE1独有的行,第二列包含FILE2独有的行,第三列包含两个文件共同的行。

显示文件1和文件2共有的那些行

键入命令,如下所示:

$ comm /path/to/file1/ /path/to/file2
$ comm -1 /path/to/file1/ /path/to/file2
$ comm -2 /path/to/file1/ /path/to/file2
$ comm -3 /path/to/file1/ /path/to/file2

其中:

  • -1:不显示FILE1特有的行
  • -2:不显示FILE2独有的行
  • -3:不显示在两个文件中都有的行

您也可以尝试一下perl代码

$ perl -ne 'print if ($seen{$_} .= @ARGV) =~ /10$/'  file1 file2