繁体   English   中英

用awk比较两个文件-检查file1中两列中的值是否包含在file2中两列中的某处

[英]Compare two files with awk - check if values from two columns in file1 are included somewhere in two columns in file2

我想检查(每一行)file1(在$ 2 && $ 3列中)的值是否包含在file2(在$ 1 && $ 2列中)中。 如果是,那么我想从file1打印$ 1,$ 2,$ 3以及从file2打印$ 3(作为第4列)。

文件1:

@ 139.51 -62.48
@ 137.36 -63.36
@ 135.44 -64.09

文件2:

137.35 -63.36 6.349
137.36 -63.36 6.348
137.37 -63.36 6.346

我到目前为止:

awk 'NR == FNR {a[$1$2];c[FNR] =$3;next} $2$3 in a {print $1, $2, $3, c[FNR]}' $file2 $file1 > $output 

但是不知何故,$ 4中的结果值不等于file2的第三列。 有人可以帮我吗? 非常感谢! :)

我是编程新手,并且到目前为止都使用awk和shell,所以我对解释总是很满意! 谢谢!

由于您尚未显示预期的输出,因此根据您的陈述仅编写此代码。

awk 'FNR==NR{a[$2,$3]=$0;next} (($1,$2) in a){print a[$1,$2],$NF}' fiLE1  fiLE2

输出如下。

@ 137.36 -63.36 6.348

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM