#!/usr/bin/perl -w use strict; my $ncb = $/; my $cbn = $"; $/ = "\n\n"; $" = "\n"; my $yahoo = shift @ARGV; open FH, "$yahoo" or die "can't open $!"; my $callid; my $sipm; my %data1 = (); my $count = 0; my @fields1; while () { chomp; if (m/###/) { next; } unless (m{(?:^\bSIP\/2\.0 \b)?(\d\d\d|^[A-Z]{3,6} ).*(Call-ID: [\S]{25,80})[^ ]+: .*}s) { $count++; next; } ($sipm,$callid) = ($1,$2); push (@{$data1{$callid}}, $sipm); } close FH; $/ = $ncb; $" = $cbn; print "There were $count which could not detect\n"; #foreach $callid (sort keys %data1) { # my @fields = @{$data1{$callid}}; # foreach (@fields) { # print map { # ( my $x = $_ ) =~ s/\s+//g; # length( $x ) < 15 ? () : $x; # } @{ $data1{ $callid } }; # } #} foreach $callid (sort keys %data1) { my @fields = @{$data1{$callid}}; print grep {length > 15} map {s/\s+//g; "$_\n"} @fields; }