比较两个文件与每个文件匹配中的第三列,但第二个fith列使用awk不匹配

时间:2016-06-30 14:40:35

标签: awk sed grep

假设file1为:

a b c d e 
aa bb cc dd ee
ab bc de ef ge
ao ob dy ed co

和file2是:

a b c d f 
aa bb cc dd ef

预期输出应为:

 awk 'NR==FNR{c[$3,$5]++;next};($3 in c[$3]) && !($5 in c[$5]) > 0' file1 file2

以下是我的尝试:

do
wscript.sleep 3000
shellobj.sendkeys "{F5}"
loop

1 个答案:

答案 0 :(得分:3)

这样的事情?

$ awk 'NR==FNR{a[$3]=$0;next} 
       $3 in a{split(a[$3],r); if($5!=r[5])print}' file2 file1

a b c d f
aa bb cc dd ef

检查第5个字段是否不匹配。

我想,这可以简化为,

$ awk 'NR==FNR{a[$3]=$5;next} $3 in a && a[$3]!=$5' file2 file1