#!/usr/bin/perl use strict; use warnings; # Constants my $BLANK_LINE = qr/^\s+$/; my $KEY = qr/>([A-Z]{1})/; # Variables my %content; # Take the data for (<*.db>) { open(FILEDB, $_) or die "Cannot open file $_: $!\n"; my $key; for () { if (/$BLANK_LINE/) { next; } elsif (/$KEY/) { $key = $1; if (not $content{$key}) { $content{$key} = (); } } else { chomp; push (@{$content{$key}}, $_); } } close(FILEDB); } # Write the new file open(FILEDB, ">result.db") or die "Cannot open file result.db: $!\n"; for my $key (sort keys %content) { print FILEDB ">$key\n\n" . join(", ", @{$content{$key}}) . "\n\n"; } close(FILEDB);