#!/usr/bin/perl -w use strict; my $ncb = $/; my $cbn = $"; $/ = "\n\n"; $" = "\n"; open FH, 'file1' or die "can't open file $!"; my $callid; my $sipm; my %data1 = (); while () { chomp; if (m/^###|^\s*$/s) { next ; } m{(^SIP\/2\.0 \d\d\d|^[A-Z]{3,6} ).*(Call-ID: [\S]{25,80})[^ ]+: .*}s; ($sipm,$callid) = ($1,$2); #print "\$sipm is $sipm and \$callid is $callid\n"; push (@{$data1{$callid}}, $sipm); } $/ = $ncb; $" = $cbn; foreach $callid (sort keys %data1) { print "$callid \n", " @{$data1{$callid}}\n"; } close FH;