如何合并不以特定字符开头的行

how to merge lines that do not begin with certain character

如果我有以下情况:

>A13P0
ACCATAGAGAG
CCCGAGATTTA
>03HK2
ACACAGTGTGT
TTAGAGGGAGA

如何合并不以 > 开头的行?

>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA

谢谢!

perl -ne'
   if (/^>/) {
      print("\n") if $. != 1;
   } else {
      chomp;
   }
   print;
} {
   print("\n") if $. != 1;
'

用法见

我知道这已经 asked/answered 一千次了,但我找不到它:

$ awk '/^>/{print (NR>1?ORS:"") [=10=]; next} {printf "%s", [=10=]} END{print ""}' file
>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA

使用 perl 命令行:

perl -pE '$.>1 && !s/^>/\n>/ && chomp; END{say}' file

使用 sed :

$ sed ':a;$!N;/>/!{s/\n\([^>]\)//;ta};P;D' file
>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA