我想检查(每一行)if1中的值(在$ 2&& $ 3列中)是否包含在file2中(在$ 1&& $ 2列中)。如果是,那么我想从file1打印$ 1,$ 2,$ 3以及从file2打印$ 3(作为第4列)。
File1中:
@ 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的第3列。有人可以帮帮我吗?非常感谢! :)
我是编程新手,到目前为止使用awk和shell,所以我总是对解释感到高兴!谢谢!
答案 0 :(得分:2)
由于您还没有显示您的预期输出,因此根据您的语句仅编写此代码。
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