在数组条件下使用awk if条件

时间:2013-06-20 16:56:41

标签: awk

我的例子就是这样:

 FILE_A
 ABC   spring    14    60  
 FILE_B
 ABC 

如果第一列匹配FILE_A第一列&&第二栏是“春天”。

FILE_B

这很好,但如果我想添加条件awk 'NR==FNR {a[$1]=$1;next} ; {if ($4=="spring" && $5 in a) {print $0}' FILE_B FILE_A 我无法得到它。

我试过了if 60-(14-60)>0,但我无法让它发挥作用。

我的问题是:
如何使用“数组”条件制作if ($4=="spring" && $4-($3-$4)>0 && $5 in a)条件?

1 个答案:

答案 0 :(得分:2)

您没有使用正确的字段编号并且使布尔逻辑不明确,只需使用正确的字段编号和paranthesise:

awk 'NR==FNR {a[$1];next} ($1 in a) && ($2=="spring") && (($4-($3-$4))>0)' FILE_B FILE_A

显然$4-($3-$4)可以减少!