#!/usr/bin/perl -w use strict; while () { print "\n$_" if m/CME20CP6.CallDataRecord/; next if /^\s*\[/; #skip stuff like [1] : '011351'H print "$1 : $2\n" if m/^\s*(\S+)\s+:\s+(\S+)\s*$/; } #Prints: #CME20CP6.CallDataRecord.uMTSGSMPLMNCallDataRecord #callIdentificationNumber : '6CBFD7'H #exchangeIdentity : "DWLCCN6" #gSMCallReferenceNumber : '9103770001'H #switchIdentity : '0001'H #recordSequenceNumber : '39D42E'H #date : '1409071F'H #serviceFeatureCode : '0002'H #timeForEvent : '131A01'H #CME20CP6.CallDataRecord.uMTSGSMPLMNCallDataRecord #callIdentificationNumber : '6CC99C'H #exchangeIdentity : "DWLCCN6" #switchIdentity : '0001'H #recordSequenceNumber : '39D42F'H #date : '1409071F'H #serviceFeatureCode : '0002'H #timeForEvent : '131A20'H #note fiddle with regex to suit you needs #change to say print "$1 : $2\n" if m/^\s*(\S+)\s+:\s+(.*)\s*$/; #if you want say #chargePartySingle : 'aPartyToBeCharged (0)' to appear __DATA__ CME20CP6.CallDataRecord.uMTSGSMPLMNCallDataRecord { sCFChargingOutput { callIdentificationNumber : '6CBFD7'H exchangeIdentity : "DWLCCN6" gSMCallReferenceNumber : '9103770001'H switchIdentity : '0001'H recordSequenceNumber : '39D42E'H date : '1409071F'H } eventModule { iNServiceDataEventModule { chargePartySingle : 'aPartyToBeCharged (0)' genericChargingDigits { [0] : '2000'H [1] : '011351'H [2] : '223A941400'H [3] : '233A940209'H [4] : '043A2000'H [5] : '0542'H [6] : '2600'H [7] : '2700'H [8] : '080290701391620122'H [9] : '2A02'H [10] : '72000000000000000000000000'H [11] : '730000000000000000041F'H [12] : '7400000000'H [13] : '3502'H } genericChargingNumbers { [0] : '0003136985138324'H [1] : '010413198935930920'H [2] : '0203136985138324'H [3] : '038290905893701402'H [4] : '0B000002000000'H } serviceFeatureCode : '0002'H timeForEvent : '131A01'H } } } CME20CP6.CallDataRecord.uMTSGSMPLMNCallDataRecord { sCFChargingOutput { callIdentificationNumber : '6CC99C'H exchangeIdentity : "DWLCCN6" switchIdentity : '0001'H recordSequenceNumber : '39D42F'H date : '1409071F'H } eventModule { iNServiceDataEventModule { chargePartySingle : 'bPartyToBeCharged (1)' genericChargingDigits { [0] : '2002'H [1] : '010359'H [2] : '023A8207'H [3] : '033A8207'H [4] : '043A0000'H [5] : '0506'H [6] : '2600'H [7] : '2704'H [8] : '080290701391622322'H [9] : '2A02'H [10] : '72000000000000000000000000'H [11] : '730000000000000000001F'H [12] : '3500'H } genericChargingNumbers { [0] : '0003138935167173'H [1] : '028210850000'H [2] : '0303138935167173'H [3] : '06041319'H } serviceFeatureCode : '0002'H timeForEvent : '131A20'H } } }