【发布时间】:2015-10-08 08:18:00
【问题描述】:
我有一个(fasta)文件input.fa,看起来像这样
>coucou
GAGAGATAGTATAGATATATAGGATATATA
>hello_world
GATATATTCTCTCTGAFAGACGACGACFGACTACTACGAC
>ziva_wesh
HAHTAHTAHTAHCGAGAGACAGCAGCAGCACTTACTACATCHBACAHCAHCAHA
我想摆脱两者
>coucou
GAGAGATAGTATAGATATATAGGATATATA
和
>ziva_wesh
HAHTAHTAHTAHCGAGAGACAGCAGCAGCACTTACTACATCHBACAHCAHCAHA
我正在做的是(基于@Hai Vu 的this solution)
$awk '/hello/{getline;next} 1' input.fa | awk '/coucou/{getline;next} 1'
>ziva_wesh
HAHTAHTAHTAHCGAGAGACAGCAGCAGCACTTACTACATCHBACAHCAHCAHA
有没有办法做到这一点(使用awk 或sed 或perl 脚本)而不将第一个awk 结果“管道”到第二个awk 命令? (类似/hello&coucou/{getline;next} 1' input.fa)
感谢您的回答!
【问题讨论】:
-
我没有测试 GNU grep 解决方案
egrep -A1 -v "hello|coucou" input.fa,这行得通吗? -
@Walter A 我的输出是:
GAGAGATAGTATAGATATATAGGATATATA >hello_world GATATATTCTCTCTGAFAGACGACGACFGACTACTACGAC >ziva_wesh HAHTAHTAHTAHCGAGAGACAGCAGCAGCACTTACTACATCHBACAHCAHCAHA所以它似乎只是删除了第一个出现的coucou