仅在某些不匹配模式的行上用sed替换

问题描述 投票:2回答:1

我有一个文件(标准FASTA格式),如下所示。我想替换所有的“-”字符,但只能替换do n't >>以“>”开头的行。例如:

>Title1-mytitle
ACACAGCATGCTA-CTAGCAGT
>Title2
---CAGCTAGCAG-TGACGCGA
GTCAGCTGACGTAGCTAGTATA
CGATCGATCGTAGCT-GAGATT
>Title3-again-q
ATGCTAGCTGACTGATCGTCGG
ATGATGATTTG

输出想要这样:

>Title1-mytitle
ACACAGCATGCTACTAGCAGT
>Title2
CAGCTAGCAGTGACGCGA
GTCAGCTGACGTAGCTAGTATA
CGATCGATCGTAGCTGAGATT
>Title3-again-q
ATGCTAGCTGACTGATCGTCGG
ATGATGATTTG

我需要一个bash解决方案,才能将其放入更长的管道中。我在思考sed时使用了特别聪明的正则表达式。你有什么想法吗?

谢谢!

我有一个文件(标准FASTA格式),如下所示。我想替换所有的“-”字符,但只能替换不是以“>”开头的行。例如:> Title1-mytitle ...

regex bash sed fasta
1个回答
0
投票

!可用于排除搜索模式。在您的示例中,这看起来像:

© www.soinside.com 2019 - 2024. All rights reserved.