2013-03-26 70 views
-1

我需要比較兩個文件。在unix中的File1.txt和File2.txt。 File1.txt中的值而不是File2.txt中的值必須寫入diff.txt。我想我們可以只使用awk來實現。任何人都可以請指導我做到這一點?使用awk比較unix中的兩個文件

FILE1.TXT

apple 
bat 
cat 

FILE2.TXT

apple 
cat 

diff.txt

bat 

回答

5

嘗試這一個班輪:

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

這是迄今爲止我使用最頻繁的單行... +1 :)(雖然你忘了結尾引用) – 2013-03-26 16:28:06

1
diff file2 file1 | perl -lne 'print $1 if(/^\> (.*)/)' 
+0

+1:這是一個好方法,但可能更好的做一些像'diff -u file1 file2 | sed -n'/^--- /!{/^-/s/- // p}'' – 2013-03-26 18:46:41

0

這是「通訊」的建立是爲了做這項工作:

comm -23 file1 file2 

人通訊的詳細信息。需要注意的是,輸入文件必須按照您的要求進行排序。