2013-03-06 56 views
1

之間的區別,我有以下情況:找到兩個文件

的file1.dat是這樣的:

1 2 
1 3 
1 4 
2 1 

和File2.DAT的是這樣的:

1 2 
2 1 
2 3 
3 4 

我想從第一個找到第二個文件之間的差異。我試過機智grep -v -f file1 file2,但我的真實文件比這兩個更大,當我嘗試使用它時,shell永不結束是工作。

結果應該是:

2 3 
3 4 

文件排序,它們具有相同數量的元素。任何方式來找到一個解決方案與awk?

+0

可能重複:http://stackoverflow.com/questions/ 8181974/compare-two-files-with-awk-or-sed – halex 2013-03-06 15:23:37

+0

file2.dat中不存在的所有行在file1.dat中不存在 – 2013-03-06 15:28:04

+0

爲什麼'1 3'不在結果中?它在file1中,但不在file2中。它是不同的權利? – Kent 2013-03-06 15:28:45

回答

10

好像你想在file2不在file1線:

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

然而,它的易於使用comm

$ comm -13 file1 file2 
2 3 
3 4 
+0

+1用於提示comm – anubhava 2013-03-06 15:37:19

+0

爲什麼-13?這是什麼意思? – 2013-03-06 16:14:20

+4

閱讀'man comm'' -1'來壓制文件1和'-3'的獨特行,以抑制兩者共有的行。只留下file2中唯一的行。 – 2013-03-06 16:21:27