我的例子就是这样:
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)
条件?
答案 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)
可以减少!