首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >grep -匹配单词,后面没有任何内容

grep -匹配单词,后面没有任何内容
EN

Stack Overflow用户
提问于 2014-08-01 03:09:59
回答 3查看 2.6K关注 0票数 1

我有一个以下格式的文件(数千行和制表符分隔):

代码语言:javascript
复制
Gnl3l   3'UTR    
Smap1   5'UTR||3'UTR    
D4Wsu53e    CDS||5'UTR||3'UTR    
Mecp2   3'UTR    
Mecp2   3'UTR

我想从第二个选项卡中返回只包含"3'UTR"的所有行。所需输出:

代码语言:javascript
复制
Gnl3l   3'UTR    
Mecp2   3'UTR    
Mecp2   3'UTR

你对grep/regex有什么想法吗?

EN

回答 3

Stack Overflow用户

发布于 2014-08-01 03:13:04

这里最好使用awk,因为使用awk可以轻松地匹配特定字段,而无需使用复杂的正则表达式:

代码语言:javascript
复制
awk -v s="3'UTR" '$2==s' file
Gnl3l   3'UTR
Mecp2   3'UTR
Mecp2   3'UTR

不过,下面是一个也可以工作的grep命令,但我更喜欢awk:

代码语言:javascript
复制
grep "\t3'UTR" file
Gnl3l   3'UTR
Mecp2   3'UTR
Mecp2   3'UTR
票数 2
EN

Stack Overflow用户

发布于 2014-08-01 03:16:42

如果您想在这里使用正则表达式,请使用如下代码:

代码语言:javascript
复制
grep "(.*)\t3'UTR$"

这个正则表达式表示可以在开头((.*))处放置任何内容,后跟一个制表符(\t -您也可以使用所有空格\s)和3'UTR。之后,该行必须结束($)。

注意,不需要(.*),但是如果您想在grep之外使用正则表达式,您可以找到需要它的环境。

票数 1
EN

Stack Overflow用户

发布于 2014-08-01 03:16:25

使用grep

代码语言:javascript
复制
grep -E "^\S+\s+3'UTR$" file

代码语言:javascript
复制
grep "^[^\t]\+\t\+3'UTR$" file

输出:

代码语言:javascript
复制
Gnl3l   3'UTR
Mecp2   3'UTR
Mecp2   3'UTR
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25067052

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档