我想找到两个文件之间的区别,然后只将差异放在第三个文件中。我看到了使用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.
答案 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行