如果column 7
为< 1.0E-08
AND ,我正在使用此脚本提取行
第8列有一个或多个值> 0.2 and 0.3
这是正确的方法吗?
InputFile:head -1 test.txt
A2 DR28 P3379 72 7 5.008 8.252e-14
0.05132,0.04248,0.002704,0.116,0.04439,0.2,0.3
A2 DR28 P3379 72 7 5.008 0.05
0.05132,0.04248,0.002704,0.116,0.04439,0.006,0.004
脚本:首先我做了
awk '{if($7 < 1.0E-08 || $8 > 0.2) print}' test.txt
这会将第一行作为输出,但我想使用&& (AND)
代替|| (OR)
当我使用AND (&&)
awk '{if($7 < 1.0E-08 && $8 > 0.2) print}' test.txt
虽然第一行符合此标准,但没有结果。
我也试过这个,但这里只考虑第8列作为截止点
awk -F',' '$8 > 0.2' test.txt
这个脚本工作正常但我需要考虑列7
,因为我在输出中有几行,所以只是想确保我没有遗漏任何东西
答案 0 :(得分:0)
没有经过测试,但这样的事情应该有效
$ awk 'function anyGreater(x,v) {
n=split(x,f8,",");
for(i=1;i<=n;i++) if(f8[i]>v) return 1;
return 0}
$7<1.0E-08 && anyGreater($8,0.2)' file