grep - 提取具有字符串和可变数字模式的行
问题描述
我有一个大文件,其中有很多行,如下所示:
22 16052167 rs375684679 A AAAAC . PASS DR2=0.02;AF=0.4728;IMP GT:DS
在这些行中,DR2
值的范围从 0 到 1,我想提取那些包含DR2
高于 0.8 的值的行。
我已经尝试了两种sed
或awk
解决方案,但似乎都没有工作......我尝试了以下方法:
grep "DR2=[0-1]\.[8-9]*" myfile
解决方案
这匹配值大于或等于0.8 的行。如果您坚持严格大于,那么我将不得不添加一些复杂性以防止 0.8 匹配。
grep 'DR2=\(1\|0\.[89]\)' myfile
诀窍是您需要两个单独的子模式:一个匹配 1 和更大,一个匹配 0.8 和更大。
推荐阅读
- c - 如何更改输入链表而不返回
- prometheus - promql 中有没有办法使用 thanos api 获取所有可用的标签名称?
- oracle - 除了 select into 语句之外,还有什么方法可以将选择查询分配给 PL/SQL 中的局部变量?
- javascript - MongoDB 聚合条件 - 根据条件隐藏对象
- javafx - 如何在 javafx 中的某些操作之前显示 processindecator
- r - r-plotly 过滤器按钮以显示所有数据
- javascript - 按字母顺序对对象数组中的元素进行排序(错误)
- javascript - Undefined 不是 React Native 上的对象(评估“this.props.navigation.navigate”)
- javascript - Firebase + React Native:无效的流令牌
- c# - 无法在授权属性上动态发送 Active Directory 组名称