比较文件的内容

时间:2013-03-25 12:43:00

标签: perl bash shell

我有两个制表符分隔的文件,每个15列,n行和m行。

文件1中的行数大于file2的行数,例如文件1的行数为15行 file2中不存在的文件

我怎样才能找到这些行?

谢谢

3 个答案:

答案 0 :(得分:2)

comm命令将查找对这两个文件唯一的行或两者共有的行。

comm -23 <( sort file1 ) <( sort file2 )

将仅在file1中打印行(仅在file2中的行和公共行被-2-3选项抑制。文件必须排序;它们如何排序并不重要排序,只要它们都以相同的键和相同的方式排序。

答案 1 :(得分:1)

这有帮助吗?

awk 'NR==FNR{a[$0];next}!($0 in a)' file2 file1

答案 2 :(得分:1)

join命令可能会有所帮助,尤其是 -a 选项:

  

-a FILENUM       打印来自文件FILENUM的不可用行,其中FILENUM为1或2,对应于FILE1或FILE2