我想比较两个文件[未排序] file1和file2。我想做file2 - file1 [差异]而不管行号? 差异不起作用。
答案 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中的文件:
cmp
:此命令用于逐个字节地比较两个文件,并且当出现任何不匹配时,它会在屏幕上回显它。如果没有不匹配,我没有给出任何响应。
语法:$ cmp file1 file2。
comm
:此命令用于查找一个中可用的记录,但不能查找另一个中的记录
diff
答案 3 :(得分:2)
最简单的方法:使用sort(1)对文件进行排序,然后使用diff(1)。