1

我的例子是这样的:

 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)了,但我无法让它工作。

我的问题是:
如何在awk if“数组中”条件下创建条件?

4

1 回答 1

2

您没有使用正确的字段编号并使布尔逻辑模棱两可,只需使用正确的字段编号和括号:

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

明明$4-($3-$4)可以减!

于 2013-06-20T17:03:13.650 回答