加入换行符FASTA文件利用状况的SED / AWK / Perl的单行 [英] Joining Line Breaks in FASTA file With Condition in SED/AWK/Perl one-liner

查看:319
本文介绍了加入换行符FASTA文件利用状况的SED / AWK / Perl的单行的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!

问题描述

我有一个看起来像这样的数据

 > SQ1
foofoofoobar
foofoofoo
> SQ2
quxquxquxbar
quxquxquxbar
quxx
> SQ3
paxpaxpax
PAX

我想要做的就是将它们连接成一个行:

 > SQ1 foofoofoobarfoofoofoo
> SQ2 quxquxquxbarquxquxquxbarquxx
> SQ3 paxpaxpaxpax

我想这code,但失败。

  SED -e'德'-e'H; $ D组;:E'-e'X; / ^ $ /天; S / \\ n // G'

什么是做正确的方式?


解决方案

  $的awk'/ ^> /&放大器;&安培; NR大于1 {打印;} {printf的 %S,/ ^> /? $ 0:$ 0}'文件
> SQ1 foofoofoobarfoofoofoo
> SQ2 quxquxquxbarquxquxquxbarquxx
> SQ3 paxpaxpaxpax

I have a data that looks like this

> sq1
foofoofoobar
foofoofoo
> sq2
quxquxquxbar
quxquxquxbar
quxx
> sq3
paxpaxpax
pax

What I want to do is to join them into one lines:

> sq1 foofoofoobarfoofoofoo
> sq2 quxquxquxbarquxquxquxbarquxx
> sq3 paxpaxpaxpax

I tried this code but fail.

sed -e 'te' -e 'H;$!d;:e' -e 'x;/^$/d;s/\n//g'

What's the right way to do it?

解决方案

$ awk '/^>/&&NR>1{print "";}{ printf "%s",/^>/ ? $0" ":$0 }' file 
> sq1 foofoofoobarfoofoofoo
> sq2 quxquxquxbarquxquxquxbarquxx
> sq3 paxpaxpaxpax

这篇关于加入换行符FASTA文件利用状况的SED / AWK / Perl的单行的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!

查看全文
登录 关闭
扫码关注1秒登录
发送“验证码”获取 | 15天全站免登陆