尝试在本示例文本中解析 behen 和 > 的下一个实例:
>S_behen_BOx6592|contig_6484&contig_7580
TCCGAACCATAGCAAACATCGAAAGGAGTTTCGAAGGAAGTTCCTGAGATGTTATAAAAG
TCAACTCCTTTTGGAAGTTTTGCTTTATTGATGAGTTGACGAGTACCAGCAGCCCATTTC
AGAATGGCATAGTTGAAAGGAAGAGCAAATGTTTTTCCATTGAAATCAAGCTCATTATGC
CTCAATGCCTCCTCAAAAACAACGGTACTTTGAAGCGGGCCATAAGATTCTAGCTTCACA
GAAGGAGGTGCTTCTTCGTCTTCTTTATCTGGAGTTACTTTACGCCAAACCTGAATTTGG
GGAGTCTTCTTCCACTCGAATACCGGATTGGGCAACATTTCATAAATAGATGGACACTCA
ATTACCAGTTGGTGCATGGTCCATCTCCCCACAAAAAAATAACTTTCAAAACCTTCAATG
AATTGCAGTCCAGTTAAAAGAGCATCATTGACGCATCCTGGTGCACCTTGAAAAGGACAA
GCAATGCAAATCCACTTGCTGACATACTTGGAAAATA
>S_dichotoma_BOx6597|contig_19038_allele_0&contig_8274_allele_0
TCCGAACCATAGCAAACATCAAAAGGAGTTTCGAATGAAGTTCCGGAGATGTTGAAAAAG
CTAACTCCTTTTGGAAGTTTTGCTTTATTGATGAGTTGACGAGTGCCAGCAGCCCATTTC
AGAATAGCATAGTTGAAAGGAAGAGCGAATGTTTTTCCATTGAAATCAAGCTCATTATGC
CTCAATGCCTCCTCAAAAACAGTGGGACTTTGAAGCGGGCCATACGATTCTAGCTTCGCA
GAAGGAGGTGCTTCTTCATCTTCTTTGTCTGGAGTTACTTTACGCCAAACCTGAATTTGG
GGAGTCTTCTTCCACTCGAATACTGGATTTGGCAACATCTCATAAATAGATGGACACTCA
ATTACCAGTTGGTGCATGGTCCATCTCCCCACAAAAAAATAACTTTCAAAACCTTCAATG
AATTGCAGCCCAGTTAAAAGAGCATCATTGACGCATCCTGGTGCACCTTGAAAAGGGCAA
GCAATGCAAATCCACTTACTGACATACTTGGAAAAAA-ATCAGGATATAGTGTCATGAAA
CACCTAATCAGTACTCCTCCCATAGAATGCGATATTAAGTTGACTTGTCTTCCCCCAGAA
GCTTTGTGTGCAGTTTCCAGCTTAGCTTAAGGCCCTCCATT
...
>S_dichotoma_BOx6597|contig_8274_allele_1&contig_19038_allele_0
TCCGAACCATAGCAAACATCAAAAGGAGTTTCGAATGAAGTTCCGGAGATGTTGAAAAAG
CTAACTCCTTTTGGAAGTTTTGCTTTATTGATGAGTTGACGAGTGCCAGCAGCCCATTTC
AGAATAGCATAGTTGAAAGGAAGAGCGAATGTTTTTCCATTGAAATCAAGCTCATTATGC
CTCAATGCCTCCTCAAAAACAGTGGGACTTTGAAGCGGGCCATACGATTCTAGCTTCGCA
GAAGGAGGTGCTTCTTCATCTTCTTTGTCTGGAGTTACTTTACGCCAAACCTGAATTTGG
GGAGTCTTCTTCCACTCGAATACTGGATTTGGCAACATCTCATAAATAGATGGACACTCA
ATTACCAGTTGGTGCATGGTCCATCTCCCCACAAAAAAATAACTTTCAAAACCTTCAATG
AATTGCAGCCCAGTTAAAAGAGCATCATTGACGCATCCTGGTGCACCTTGAAAAGGGCAA
GCAATGCAAATCCACTTACTGACATACTTGGAAAAAA-ATCAGGATATAGTGTCATGAAA
CACCTAATCAGTACTCCTCCCATAGAATGCGATATTAAGTTGACTTGTCTTCCCCCAGAA
GCTTTGTGTGCAGTTTCCATCTTAGCTTAAGGCCCTCCATT
到目前为止,我尝试使用
-A
中的 grep
标志来获取第一个模式之后的后续行,但他并不适用于我最终必须解析的每个文件。我只想最终使用开始名称并让它抓取文件中开始和下一个“>”字符之间的每一行。
这对于 Awk 来说确实是微不足道的。提问前请搜索一下。
awk 'p && /^>/ { exit }
/^>.*behen/ {p=1}
p' file.fasta >newfile.fasta
回想一下,Awk 一次检查一行(或者更严格地说,一条记录)。在第二个条件匹配之前,
p
将是未定义的,因此 Awk 将忽略输入并跳到下一行。一旦条件匹配,p
为 true,因此第一个条件控制何时停止处理行并终止脚本(即,下次我们看到标题行时)。最后,如果我们到达脚本的最后一行并且 p
为 true,我们将打印该行。