我有很多看起来像这样的表:
Gnl_182 -2,05 -1,57 2,38095238095238 Q Rob_4 -100,684642156432 1,9660323361869
Gnl_182 -1,47 -2,19 0 Q Rob_4 -100,684642156432 1,9660323361869
Gnl_182 -1,63 -1,82 4,16666666666667 Q Rob_4 -100,684642156432 1,9660323361869
Gnl_182 1,61290322580645 0 2,63157894736842 Q Rob_4 -100,684642156432 1,9660323361869
Gnl_182 9,09090909090909 -1,46 0 Q Rob_4 -100,684642156432 1,9660323361869
Gnl_182 -3,36 -3,02 1,0752688172043 Q Rob_4 -100,684642156432 1,9660323361869
Gnl_182 1,66666666666667 -1,37 2,22222222222222 Q Rob_4 -100,684642156432 1,9660323361869
Gnl_182 1,44927536231884 -1,14 3,7037037037037 Q Rob_4 -100,684642156432 1,9660323361869
Gnl_182 1,92307692307692 1,14942528735632 0 Q Rob_4 -100
Gnl_182 1,49253731343284 -1,15 3,44827586206897 Q Rob_4 -100,684642156432 1,9660323361869
Gnl_1964 1,36986301369863 -1,03 -1,47 Q Rob_4 -2,73908329200197 4,40585349069822
Gnl_1964 -1,02 -1,04 -2,53 Q Rob_4 -2,73908329200197 4,40585349069822
Gnl_1964 0 -1,17 -1,55 Q Rob_4 -2,73908329200197 4,40585349069822
Gnl_2006 -3,63 1,49253731343284 2,08333333333333 Q Rob_4 -23,1216666666667 23,6583333333333
Gnl_2006 4,16666666666667 2,04081632653061 2,63157894736842 Q Rob_4 -23,1216666666667 23,6583333333333
我想验证第二列中的值是否在最后两个值定义的范围内。如果这个条件匹配,我想打印所有行。
我非常确定此代码可以正常工作
awk -F "\t" '{if($2>=$7 && $2<=$8) print}' file_name.txt > test.txt
但事实并非如此。例如,对于第一组(Gnl_182),它删除第二列中包含值的行:
9,09
-1,47
-1,63
Wheres,只是包含
的行9,09
应该删除
我真的不明白我在这里失踪了什么。小数有问题吗? 谢谢!