比较UNIX中的两个文件

时间:2011-01-17 17:16:15

标签: unix

我想比较两个文件[未排序] file1和file2。我想做file2 - file1 [差异]而不管行号? 差异不起作用。

4 个答案:

答案 0 :(得分:23)

我使用comm

获得了解决方案
comm -23 file1 file2 

将为您提供所需的输出。

无论如何都需要先对文件进行排序。

答案 1 :(得分:21)

好吧,你可以先对文件进行排序,然后对已排序的文件进行区分。

sort file1 > file1.sorted
sort file2 > file2.sorted
diff file1.sorted file2.sorted

您还可以过滤输出以报告file1中缺少的文件:

diff -u file1.sorted file2.sorted | grep "^+" 

如评论中所示,您实际上不需要对文件进行排序。相反,您可以使用流程替换并说:

diff <(sort file1) <(sort file2)

答案 2 :(得分:4)

3 基本命令来比较unix中的文件:

  1. cmp:此命令用于逐个字节地比较两个文件,并且当出现任何不匹配时,它会在屏幕上回显它。如果没有不匹配,我没有给出任何响应。 语法:$ cmp file1 file2。

  2. comm:此命令用于查找一个中可用的记录,但不能查找另一个中的记录

  3. diff

答案 3 :(得分:2)

最简单的方法:使用sort(1)对文件进行排序,然后使用diff(1)。