#! perl -w @ARGV = ('file1.txt', 'file2.txt'); my %data; while(<>) { my($datetime, $data) = /^(\w+-\d+,[\d:.]+),(.*)/; push @{ $data{$datetime} }, $data; } foreach my $key (sort keys %data) { print $key, ',', join(',', @{ $data{$key} }), "\n"; }