#!/usr/bin/perl -w use strict; my $current_call=""; my $current_line=""; while () { my ($call, $partyID) = /Call="(\w+)".*partyID="(\w+)"/; next unless defined $partyID; if ( $call ne $current_call) # new call record { print "$current_line\n" if $current_line ne ""; $current_call = $call; $current_line = $partyID; } else # the receiver partyID { $current_line .= " $partyID"; } } print "$current_line\n"; =prints 3855 OutOfArea 2863 2717 =cut __DATA__ 08:17:12.245 ( 1528: 4112) [TMS] AddMediaStreamFromCDS : Media Stream Event from Remote Server is logged hr=0x00000000 08:17:12.245 ( 1528: 4132) [TMS] CNccCdrLog::ProcessMediaStreamRequest: 0 08:17:17.843 ( 1528: 4132) [TMS] CCallEntryMsg::WriteCallData - validating CDR privacy for Call="002000199994e4ea9030010491ae13d", partyID="3855", CtrlPartyID="" 08:17:17.843 ( 1528: 4132) [TMS] CCallEntryMsg::WriteCallData - validating CDR privacy for Call="002000199994e4ea9030010491ae13d", partyID="OutOfArea", CtrlPartyID="" 08:17:17.844 ( 1528: 4132) [TMS] CCallEntryMsg::WriteCallData - EndOfList: after 3 entries, hr=0xC1170A2E 08:17:21.479 ( 1528: 4132) [TMS] CCallEntryMsg::WriteCallData - validating CDR privacy for Call="00b0001288b4da335dc0010491ad632", partyID="2863", CtrlPartyID="" 08:17:21.479 ( 1528: 4132) [TMS] CCallEntryMsg::WriteCallData - validating CDR privacy for Call="00b0001288b4da335dc0010491ad632", partyID="2717", CtrlPartyID="" 08:17:21.479 ( 1528: 4132) [TMS] CCallEntryMsg::WriteCallData - EndOfList: after 3 entries, hr=0xC1170A2E 08:17:21.640 ( 1528: 4112) [TMS] NccDtcpMsgLegState : Processing Leg State Event