1

if i have the following:

>A13P0
ACCATAGAGAG
CCCGAGATTTA
>03HK2
ACACAGTGTGT
TTAGAGGGAGA

How do I merge lines that do not begin with >?

i.e.

>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA

thanks!

brucezepplin
  • 9,202
  • 26
  • 76
  • 129

4 Answers4

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

See Specifying file to process to Perl one-liner for usage.

ikegami
  • 367,544
  • 15
  • 269
  • 518
2

I know this has been asked/answered a thousand times but I can't find it so:

$ awk '/^>/{print (NR>1?ORS:"") $0; next} {printf "%s", $0} END{print ""}' file
>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA
Ed Morton
  • 188,023
  • 17
  • 78
  • 185
2

with a perl command line:

perl -pE '$.>1 && !s/^>/\n>/ && chomp; END{say}' file
Casimir et Hippolyte
  • 88,009
  • 5
  • 94
  • 125
0

With sed :

$ sed ':a;$!N;/>/!{s/\n\([^>]\)/\1/;ta};P;D' file
>A13P0
ACCATAGAGAGCCCGAGATTTA
>03HK2
ACACAGTGTGTTTAGAGGGAGA
SLePort
  • 15,211
  • 3
  • 34
  • 44