2013-03-26 71 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 

人通讯的详细信息。需要注意的是,输入文件必须按照您的要求进行排序。