在unix中找到两个文件之间差异的最快方法?

时间:2013-08-05 23:46:57

标签: linux bash unix

我想找到两个文件之间的区别,然后只将差异放在第三个文件中。我看到了使用awk,diff和comm的不同方法。还有吗?

例如。Compare two files line by line and generate the difference in another file

例如。Copy differences between two files in unix

我需要知道找出所有差异的最快方法,并将其列在下面每个案例的文件中 -

Case 1 - file2 = file1 + extra text appended.
Case 2 - file2 and file1 are different.

4 个答案:

答案 0 :(得分:42)

你可以试试..

comm -13 <(sort file1) <(sort file2) > file3

grep -Fxvf file1 file2 > file3

diff file1 file2 | grep "<" | sed 's/^<//g'  > file3

join -v 2 <(sort file1) <(sort file2) > file3

答案 1 :(得分:13)

另一种选择:

sort file1 file2 | uniq -u > file3

如果您只想查看重复的条目,请使用&#34; uniq -d&#34;选项:

sort file1 file2 | uniq -d > file3

答案 2 :(得分:1)

您还可以尝试包含md5-hash-sums或类似内容来确定是否存在任何差异。然后,只比较具有不同哈希值的文件......

答案 3 :(得分:0)

这将很快运作:

案例1 - File2 = File1 +附加额外文本。

grep -Fxvf File2.txt File1.txt&gt;&gt; File3.txt

文件1:80行 文件2:100行 文件3:20行