首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >复制完整的文本行,后面跟着特定的模式

复制完整的文本行,后面跟着特定的模式
EN

Stack Overflow用户
提问于 2016-05-10 18:33:12
回答 1查看 28关注 0票数 0

我需要复制一整行文本,这是在使用linux命令行的模式之后出现的。

我有一个像这样的文本文件:

Query= lcl|TRINITY_DN38349_c2_g130_i1 len=264 path=13442:0-77 13443:78-113 13444:114-116 13445:117-137 13446:138-141 13447:142-181 13448:182-182 13449:183-190 13450:191-220 13451:221-237 13452:238-263 Length=612序列产生明显的排列: ref|XP_011662878.1|预测:在恶性脑肿瘤中被删除.71.28E-11 ref|XP_011660819.1|预测: 61.2 3结合蛋白样[.61.21-E-08 ref|XP_011662496.1|预测:在恶性肿瘤中缺失.60.5 2 e-07 /ref|XP_011662878.1|预测:在恶性脑肿瘤中缺失1种蛋白样蛋白--紫癜丝囊藻Length=903

我需要复制从Query= lcl|TRINITY/ref|开始的全部行。问题是,我有几十个这样的文件,每个文件都有数百行文字,所以数字和文本跟随这些模式不断变化。我希望将它们重定向到一个文件中。

理想情况下,输出应该如下所示:

Query= lcl|TRINITY_DN38349_c2_g130_i1 /ref|XP_011662878.1|预测:在恶性脑肿瘤中缺失1种蛋白样蛋白

注意,兴趣线总是从/refQuery=开始。我读过一些关于使用sed的文章,但我无法让它工作。

提前谢谢。

EN

回答 1

Stack Overflow用户

发布于 2016-05-10 19:17:34

对于find和sed,要获得所需输出示例中的截短行(从当前目录递归搜索):

代码语言:javascript
运行
复制
find . -type f -exec sed -n 's/^\(Query= lcl|TRINITY[^ ]*\) .*/\1/p;s/^\(\/ref.*\) .*/\1/p' '{}' \; > output 

若要保存以Query= lcl|TRINITY/ref开头的整行,请执行以下操作:

代码语言:javascript
运行
复制
find . -type f -exec sed -n '/^Query= lcl|TRINITY/p;/^\/ref.*/p' '{}' \; > output 

匹配行保存到output文件中。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37146348

复制
相关文章

相似问题

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