首页 > 解决方案 > 提取适合字符模式的行,后跟可变数字

问题描述

我有一个包含几列的文件,我想只提取第 8 列中值高于 0.7 的那些行(最大值为 1)。我的第 8 列如下所示:

DR2=0.05;AF=0.0009;IMP
DR2=0.05;AF=0.0017;IMP
DR2=0.74;AF=0.0012;IMP

我在 awk 中尝试了以下代码:

 awk '{$8 ~ /^DR2=[>0.7]*/ }' myfile > myfile.filtered

我尝试只识别“DR2 =”部分并且它有效,所以问题似乎是数字部分。

非常感谢您,任何帮助将不胜感激!

标签: awk

解决方案


理想情况下,您应该根据您显示的示例发布完整的示例,您能否尝试以下操作。

awk '$8 ~ /^DR2=/{split($8,array,"[=;]");if(array[2]>0.7){print}}' Input_file

推荐阅读