2014-02-18 34 views
0

我想比较两个文件。比较两个文件,如果找到匹配项,则删除一行

如果从file2值与的file1前两列匹配需要从file1删除整个线和打印结果为output,如下所示。

下面包含的file1值:中file2

2,bplle 
4,tag 
5,Centurion 

1,aplle,melle,cyborg 
2,bplle,less,vgm 
3,minipl,vicy,bgm 
4,tag,mob,calic 
6,Centurion,sa,hh 

下面包含的价值观和output必须包含如下:

1,aplle,melle,cyborg 
3,minipl,vicy,bgm 
6,Centurion,sa,hh 

是否有可能实现这一目标awk

+1

根据[awk的这种描述](http://en.wikipedia.org/wiki/AWK),是的,我会说这是可能的。 –

回答

1

这AWK应该工作:

awk -F, 'FNR==NR{a[$1,$2];next} !(($1,$2) in a)' file2 file1 
1,aplle,melle,cyborg 
3,minipl,vicy,bgm 
6,Centurion,sa,hh 
0

这也将工作:grep -Fwvf file2 file1

-F
解释图案作为固定字符串列表,

-w
选择只有那些包含构成整个单词的匹配的行。

-v
反转匹配的意义,选择不匹配的行。

-f FILE
从FILE获取模式,每行一个。

相关问题