首页 > 解决方案 > 提取具有字符串和可变数字模式的行

问题描述

我有一个大文件,其中有很多行,如下所示:

22 16052167 rs375684679 A AAAAC . PASS DR2=0.02;AF=0.4728;IMP GT:DS

在这些行中,DR2值的范围从 0 到 1,我想提取那些包含DR2高于 0.8 的值的行。

我已经尝试了两种sedawk解决方案,但似乎都没有工作......我尝试了以下方法:

grep "DR2=[0-1]\.[8-9]*" myfile

标签: grep

解决方案


这匹配值大于或等于0.8 的行。如果您坚持严格大于,那么我将不得不添加一些复杂性以防止 0.8 匹配。

grep 'DR2=\(1\|0\.[89]\)' myfile

诀窍是您需要两个单独的子模式:一个匹配 1 和更大,一个匹配 0.8 和更大。


推荐阅读