【发布时间】:2021-01-02 01:55:57
【问题描述】:
我有以下文件,其中一些记录(每条记录以“>”开头的行分隔)位于一行中,而其他记录位于多行中:
>NODE_1506886_length_92_cov_1.000000
CATGCGAACTTCCGCAAGGACATCGTCATCCATGGCTTCAGACATGCCATGCGTGACCGT
CTGAGAGCCGTTAGCTGCCCATCAGAGATGAT
>NODE_1506887_length_92_cov_1.000000
TATATTTTAATTCATTATTTGGTACATCAAACGATGAGGCTAAATATATAATAACTGGAA
ATAATCGAGACGTAAATCGATACCGATGGAAC
>k119_811274 flag=1 multi=3.0000 len=313
TAAAAAATTACTACCTTGCAGATAAGTCGCTCAGCCCATGGTTGTCAGGTTTATCTGCAATGGCAACAAATAACAGTGGCTACATGTTTATTGGTCTTATTGGATTCACCTATCTCAATGGCCTTTCCAGCATATGGCTAATGATTGGTTGGATATTAGGGGATTACCTAATTACAAAAAAATTATTTCCAA
>k119_405638 flag=1 multi=7.0000 len=562
CACAGTTAACATAAATTACCACGAACGACGCACGCTCAAATCCGAAGCAAAGTCAGCAATTGCTAAATCCTGTTCAAAAAAAATTCCAAACGGTAGTTCGATATTTATCAATATCGGGACATCGACTGAAGCCGTCGCTCAGGAATTAATGCAGCACAGTAACTTAATGGTTGTGACCAACAACATAAATGTTGCCAATATTTTATCGCCCAATGAGAATTGTGAGATTCTTTTAACTGGTGGTCAACTTAGACGTTCTGACGGAGGTCTCATCGGTAATTTGGCAGC
我只想匹配多行记录而不是单行记录。 我已经尝试了以下
perl -0777ne 's/(^[^>].+)\s[A-Z]/[$1]/s' file
但它不起作用。
【问题讨论】:
-
预期输出是什么?
-
试试
perl -0777 -pe 's/^(?!>).+(?:\R[A-Z].*)+/[$&]/gm' file -
@Wiktor Stribiżew 输出可以是任何东西,我只想检查是否匹配多行记录而不是单行记录。感谢您的代码,但它似乎不起作用。
-
见ideone.com/BqoHnb 和regex101.com/r/7CdBAk/1,什么不起作用?
-
有些模块可以读取这些 dna-string 文件。找到这样一个模块并使用它可能是值得的。
标签: regex shell perl bioinformatics fasta