在 bash (4.3.46(1)) 中,我有一些多行所谓的 fasta 记录,其中每个记录都是由 >name 和以下几行 DNA 序列 ([AGCTNacgtn]) 启动,这里有三个记录:
>chr1
AGCTACTTTT
AGGGNGGTNN
>chr2
TTGNACACCC
TGGGGGAGTA
>chr3
TGACGTGGGT
TCGGGTTTTT
如何使用 bash grep 获取第二条记录?在其他语言中,人们可能会使用:
>chr2\n([AGCTNagctn]*\n)*
在 Bash 中,我尝试使用来自here(以及其他 SO)。这不起作用:
grep -zo '>chr2[AGCTNacgtn]+' file
结果应该是:
>chr2
TTGNACACCC
TGGGGGAGTA
SOLUTION
在我的系统上,这就是解决方案(几乎是赛勒斯的下面,即没有管道到第二个grep .
):
grep -Pzo '>chr1\n[AGCTNacgtn\n]+' file
使用 GNU grep:
grep -Pzo '>chr2\n[AGCTNacgtn\n]+' file | grep .
Output:
>chr2
TTGNACACCC
TGGGGGAGTA
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)