原来sed不支持非贪婪匹配
2022/9/15 23:20:07
本文主要是介绍原来sed不支持非贪婪匹配,对大家解决编程问题具有一定的参考价值,需要的程序猿们随着小编来一起学习吧!
场景
从GISAID上面批量下载下来的序列id很长,格式如下:
太长了,并且makeblastdb的时候-parse_seqids参数会导致报错,大概是长度太长不符合要求无法处理之类的。
不作处理去掉-parse_seqids也没问题,不过怕后期引起不必要的麻烦,这个时候就需要处理一下这些id
sed
想着直接sed处理一下就好,因为有两个“|”存在,结果发现sed没法做到非贪婪……
grep '>' ../gisaid.fasta|sed s/hMpxV.*?\|//g|less
没效果啊~
添加-r
用扩展的正则也没用~
看help,sed
也没有-p
参数……
原来sed并不支持“非贪婪”的正则,有地方是这么解释的:
https://www.codenong.com/40117611/
https://qa.1r1g.com/sf/ask/2808232801/
大概就是说非贪婪匹配是通过perl的PCRE引入主流的,而sed的规范比PCRE早了好几年……
有点难以令人信服……
不支持就绕道吧,不要中间有“|”就得了
grep '>' ../gisaid.fasta|sed s/hMpxV[^\|]*\|//g|less
就这样吧
sed -i s/hMpxV[^\|]*\|//g gisaid.fasta sed -i s/\|.*//g gisaid.fasta
这篇关于原来sed不支持非贪婪匹配的文章就介绍到这儿,希望我们推荐的文章对大家有所帮助,也希望大家多多支持为之网!
- 2024-05-01为什么公共事业机构会偏爱 TiDB :TiDB 数据库在某省妇幼健康管理系统的应用
- 2024-04-26敏捷开发:想要快速交付就必须舍弃产品质量?
- 2024-04-26静态代码分析的这些好处,我竟然都不知道?
- 2024-04-26你在测试金字塔的哪一层?(下)
- 2024-04-26快刀斩乱麻,DevOps让代码评审也自动起来
- 2024-04-262024年最好用的10款ER图神器!
- 2024-04-2203-为啥大模型LLM还没能完全替代你?
- 2024-04-2101-大语言模型发展
- 2024-04-17基于SpringWeb MultipartFile文件上传、下载功能
- 2024-04-14个人开发者,Spring Boot 项目如何部署