2012-10-29 75 views
0

我有兩個文件。我想比較這些文件,但兩個文件中行的順序不相同。 你能否提供最簡單的方法來比較這兩個文件。兩個文件之間的區別

實施例:

file1的

My name is sumit. 
My surname is vedi. 
I like shell scripting. 

file2的

My surname is vedi. 
My name is sumit. 
I like shell scripting. 

文件之間的差別應該是零;但是,行的順序並不相同。 注意:文件很大。

回答

1

可能下面的命令會做的事情。

diff <(sort file1) <(sort file2) 

如果文件是巨大的,你不需要一個sort命令,那麼可能是你可以使用awk

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

上面的命令只會給存在於文件2的線,但不在file1中。

+0

文件中有很多字段,我無法對此進行排序。 –

+0

@sumitvedi:字段數量沒有意義。如果你無法對文件進行排序,你會被窺探。這是'bash'(4.x)'進程替代';它就像它得到的一樣好。如果這不起作用,那麼你很快就會用盡選擇。 (您的大文件有多大TB?) –

+0

'awk'命令必須能夠保存內存中的所有文件; 'diff'命令一次不需要在內存中保存太多內容。 –