首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >sed分组不捕获整组

sed分组不捕获整组
EN

Unix & Linux用户
提问于 2020-06-10 13:17:28
回答 1查看 119关注 0票数 2

我有一个文件,其行如下所示:

代码语言:javascript
复制
TsM_000477300_transcript_id_TsM_000477300_gene_id_TsM_000477300,extr 29
TsM_000541200_transcript_id_TsM_000541200_gene_id_TsM_000541200,extr 9,plas 7,mito 6.5,cyto_mito 4,E.R. 3,lyso 3,golg 3,E.R._golg 3
TsM_000020400_transcript_id_TsM_000020400_gene_id_TsM_000020400,extr 28,cyto 1,E.R. 1,pero 1,lyso 1,cyto_pero 1
TsM_000268600_transcript_id_TsM_000268600_gene_id_TsM_000268600,extr 13,plas 7,E.R. 5,lyso 3,golg 2
TsM_000533800_transcript_id_TsM_000533800_gene_id_TsM_000533800,extr 31
TsM_000208300_transcript_id_TsM_000208300_gene_id_TsM_000208300,extr 19,pero 5,lyso 4,plas 2,E.R. 2
TsM_000379500_transcript_id_TsM_000379500_gene_id_TsM_000379500,extr 15,golg 12,lyso 3
TsM_000882200_transcript_id_TsM_000882200_gene_id_TsM_000882200,extr 32
TsM_001173700_transcript_id_TsM_001173700_gene_id_TsM_001173700,extr 31

我想要的输出是这个:

代码语言:javascript
复制
TsM_000477300,extr 29
TsM_000541200,extr 9,plas 7,mito 6.5,cyto_mito 4,E.R. 3,lyso 3,golg 3,E.R._golg 3
TsM_000020400,extr 28,cyto 1,E.R. 1,pero 1,lyso 1,cyto_pero 1
TsM_000268600,extr 13,plas 7,E.R. 5,lyso 3,golg 2
TsM_000533800,extr 31
TsM_000208300,extr 19,pero 5,lyso 4,plas 2,E.R. 2
TsM_000379500,extr 15,golg 12,lyso 3
TsM_000882200,extr 32
TsM_001173700,extr 31

我用过sed -E 's/(^.+)_transcript_id_.+.,(.*$)/\1,\2/',但我得不到我想要的东西。这是我的输出:

代码语言:javascript
复制
TsM_000477300,extr 29
TsM_000541200,E.R._golg 3
TsM_000020400,cyto_pero 1
TsM_000268600,golg 2
TsM_000533800,extr 31
TsM_000208300,E.R. 2
TsM_000379500,lyso 3
TsM_000882200,extr 32
TsM_001173700,extr 31

我试过一些变体,但没有成功,也没有原因。

EN

回答 1

Unix & Linux用户

回答已采纳

发布于 2020-06-10 13:25:20

问题是,.+.,贪婪地匹配到最后一个,的所有内容

您可以将其修改为[^,]+.,[^,]+,,以模拟CSV上下文中的不贪婪。然而,您可能可以做一些简单得多的事情,例如

代码语言:javascript
复制
$ sed 's/_transcript_id_[^,]*//' file
TsM_000477300,extr 29
TsM_000541200,extr 9,plas 7,mito 6.5,cyto_mito 4,E.R. 3,lyso 3,golg 3,E.R._golg 3
TsM_000020400,extr 28,cyto 1,E.R. 1,pero 1,lyso 1,cyto_pero 1
TsM_000268600,extr 13,plas 7,E.R. 5,lyso 3,golg 2
TsM_000533800,extr 31
TsM_000208300,extr 19,pero 5,lyso 4,plas 2,E.R. 2
TsM_000379500,extr 15,golg 12,lyso 3
TsM_000882200,extr 32
TsM_001173700,extr 31
票数 6
EN
页面原文内容由Unix & Linux提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://unix.stackexchange.com/questions/592057

复制
相关文章

相似问题

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