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

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

我要做的是将它们合并为一行:
> sq1 foofoofoobarfoofoofoo
> sq2 quxquxquxbarquxquxquxbarquxx
> sq3 paxpaxpaxpax

我尝试了此代码,但失败了。
sed -e 'te' -e 'H;$!d;:e' -e 'x;/^$/d;s/\n//g'

什么是正确的方法?

最佳答案

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

10-06 06:13