">16RI1_0 M01230:42:000000000-AWMRD:1:1101:15012:1778 1:N:0:0
TATCCGGATTTACTGGGTGTAAAGGGAGCGTAGGCGGCCATGCAAGTCAGAAGTGAAAAC
">16RA2_1 M01230:42:000000000-AWMRD:1:1101:15923:1780 1:N:0:0
TTGTCCGGATTTATTGGGCGTAAAGCGAGCGCAGGCGGTTTCTTAAGTCTGATGTGAAAGC
">0VC3_7 M01230:42:000000000-AWMRD:1:1101:15805:1805 1:N:0:0 TCATGAAGAACTCCGATCGCGAAGGCAAGTGTCCGGGGTGCAACTGACGCTGAGGCTCGAA
">11VI2_15 M01230:42:000000000-AWMRD:1:1101:17657:1817 1:N:0:0
GCGGCTTACTGGACTGTAACTGACGTTGAGGCTCGAAAGCGTGGGGAGCAAACAGGGCTC
您好,我有一个包含此类信息的文件。我想打印所有以“>”符号开头的行和下一行,但有一个条件,以“>”符号开头的行应包含字母 V。请帮助我。
答案1
我想打印以“>”符号开头的所有行和下一行,但有一个条件以“>”符号开头的行应包含字母 V。
这grep
似乎有效:
grep -A 1 '^">.*V'
例子:
grep -A 1 '^">.*V' file
">0VC3_7 M01230:42:000000000-AWMRD:1:1101:15805:1805 1:N:0:0 TCATGAAGAACTCCGATCGCGAAGGCAAGTGTCCGGGGTGCAACTGACGCTGAGGCTCGAA
">11VI2_15 M01230:42:000000000-AWMRD:1:1101:17657:1817 1:N:0:0
GCGGCTTACTGGACTGTAACTGACGTTGAGGCTCGAAAGCGTGGGGAGCAAACAGGGCTC
答案2
使用 GNU sed
(Linux 系统上的标准),您可以从 fasta 文件中获取标题行(包含任意位置V
)和序列的第一行,如下所示:
sed -n '/^>.*V/,+1p' sequence.fa
这是假设 fasta 文件格式正确。
关闭-n
默认输出并将/^>.*V/,+1p
打印任何带有 a 的标题行V
以及紧随其后的行。
答案3
你说:
我想打印以“>”符号开头的所有行和下一行,但有一个条件以“>”符号开头的行应包含字母 V
这对 awk 来说是一份很好的工作:
$ awk '/^">.*V/{print $0;getline line; print line}' input.txt
">0VC3_7 M01230:42:000000000-AWMRD:1:1101:15805:1805 1:N:0:0
TCATGAAGAACTCCGATCGCGAAGGCAAGTGTCCGGGGTGCAACTGACGCTGAGGCTCGAA
">11VI2_15 M01230:42:000000000-AWMRD:1:1101:17657:1817 1:N:0:0
GCGGCTTACTGGACTGTAACTGACGTTGAGGCTCGAAAGCGTGGGGAGCAAACAGGGCTC