如何制作;grep“;输出包含匹配项的完整单词?
我想让grep打印出包括比赛在内的所有完整单词 谷歌没有帮助我。以下是我所尝试的:如何制作;grep“;输出包含匹配项的完整单词?,grep,Grep,我想让grep打印出包括比赛在内的所有完整单词 谷歌没有帮助我。以下是我所尝试的: cat file.txt 21676 Mm.24685 NM_009346 ENSMUSG00000055320 20349 Mm.134093 NM_011348 ENSMUSG00000063531 12456 Mm.134000 NM_011228 GM415666 grep -o "ENSMUS" file.txt ENSMUS ENSMUS
cat file.txt
21676 Mm.24685 NM_009346 ENSMUSG00000055320
20349 Mm.134093 NM_011348 ENSMUSG00000063531
12456 Mm.134000 NM_011228 GM415666
grep -o "ENSMUS" file.txt
ENSMUS
ENSMUS
期望输出:
ENSMUSG00000055320
ENSMUSG00000063531
谢谢你的帮助 您可以使用:
grep-wo“ENSMUS[^[:blank:][]*”file.txt
ENSMUG00000055320
ENSMUG00000063531
此处
[^[:blank:][]*
将匹配0个或更多非空白字符<代码>-w将确保完整的单词匹配。要提取没有版本号的ENSEMBL鼠标登录号,请执行以下操作:
grep -Po 'ENSMUS\w+' in_file
grep -Po 'ENSMUS\S+' in_file
版本号为:
grep -Po 'ENSMUS\w+' in_file
grep -Po 'ENSMUS\S+' in_file
这里,\w+
:1个或多个单词字符([A-Za-z0-9\
)。\S+
:1个或多个非空白字符(您也可以更严格地使用[\w.]+
,即1个或多个单词字符或文字点)
在这里,GNU使用以下选项:-P
:使用Perl正则表达式。-o
:仅打印匹配项(每行1个匹配项),而不是整行
另请参见:ENSMUS可以在start之外的任何地方吗?不,总是在start,前面有tab。谢谢。使用GNU awk:
awk'/ENSMUS/'RS='[\t\n]'文件
可以按需要工作!也谢谢你的解释!谢谢,更不用说打字了:)