Greetings again. I have tried I don't know how many different things to get this block extracted from this log file. Here is a sample of the log showing 2 records:
<13>Nov 13 17:27:25 OamCOMM[12260]:
TIMESTAMP=Tue Nov 13 17:27:25 2018
MSGCLS=OAMOPE
Title=OAM Create OPERATION
Severity=Inform
message={username:xxxx@::xxxx:xxx.xxx.xxx.x;
causeDISTINGUISH_NAME=epsProfileId=xxxxx,pSProfileDataId=x,subscripti
+onProfileDataId=x,managedElementId=xxxx
USER_LABEL=
******************* parameters after change =*******************
epsMaxRequestedBandwidthUL=xxxxxxxxx
epsMaxRequestedBandwidthDL=xxxxxxxxx
epsQosAllocRetPrioVulnerabilit=xxxxxxx
epsQosAllocRetPrioCapability=xxxxxxx
epsQosAllocRetPrioLevel=xxxxxxxxx
epsQosClassId=xxxxxx
sessionTimeout=xxxxxxx
idleTimeout=xxxx
epsChargingCharacteristics=xxxxxx
epsVplmnDynamicAddrAllowed=xxxxxxxxxx
epsGwAllocType=xxxxxx
epsPdnType=xxxxxx
epsAccessPointName=xxxxxx.xxxxxxx
******************* NRG location =*******************
NRG_KEY=x
}
Message Id=10011
END OF REPORT
<13>Nov 13 17:27:25 OamCOMM[12260]:
TIMESTAMP=Tue Nov 13 17:27:25 2018
MSGCLS=OAMOPE
Title=OAM Create OPERATION
Severity=Inform
message={username:xxxx@::xxxx:xxx.xxx.xxx.x;
causeDISTINGUISH_NAME=packetDataProtocolProfileId=xxxxx,gPacketProtoc
+olProfileDataId=x,pSProfileDataId=x,subscriptionProfileDataId=x,manag
+edElementId=xxxx
USER_LABEL=
******************* parameters after change =*******************
meanThroughPutClass=xxxxxx
peakThroughPutClass=xxxxx
reliabilityClass=xxxx
delayClass=xxxx
precedenceClass=xxxxx
hSDPAguaranteeFlag=x
hSUPAguaranteeFlag=x
hSUPAflag=x
hSDPAflag=x
downlinkGuaranteedBR=xxx
uplinkGuaranteedBR=xx
trafficHandlingPriority=xxxxxxx
transferDelay=xx
ratioSduError=xxxx
residualBER=xxxx
downlinkMaxBR=xxx
uplinkMaxBR=xx
maxSduSize=xxx
deliveryOfErroneousSdu=xx
deliveryOrder=xx
trafficClass=xxxxxxxx
priorityOfUmtsBearer=xxxxxxx
vplmnAddressAllowedFlag=x
pdpChargingCharacteristic=xxxxxx
accessPointName=xxxxxx.xxxxxxx
pdpType=xxxx
******************* NRG location =*******************
NRG_KEY=x
}
Message Id=10011
END OF REPORT
There are MANY entries in the log, all formatted like above - more or less data between "parameters after change" and before "NRG location", sometimes other blocks of data that are irrelevant to what I'm trying to accomplish here. So far, I have tried using the flip-flop operator in various combinations, regex in various combinations... I don't know what else to try. This file is read in a while loop. My goal is to basically extract the block of lines between "parameters after change" and "NRG location". My current test code looks like this:
#!/bin/perl
use strict;
use warnings;
use Data::Dumper;
my $file = "t.txt";
local $/ = "END OF REPORT\n";
open IN, "<", $file or die "IN: $!\n";
while (<IN>) {
print if /\*\sparameters after change\s\=/ .. /\*\sNRG locatio
+n\s\=/;
}
This really shouldn't be this hard, which tells me I must be missing something simple. Any thoughts?
-
Are you posting in the right place? Check out Where do I post X? to know for sure.
-
Posts may use any of the Perl Monks Approved HTML tags. Currently these include the following:
<code> <a> <b> <big>
<blockquote> <br /> <dd>
<dl> <dt> <em> <font>
<h1> <h2> <h3> <h4>
<h5> <h6> <hr /> <i>
<li> <nbsp> <ol> <p>
<small> <strike> <strong>
<sub> <sup> <table>
<td> <th> <tr> <tt>
<u> <ul>
-
Snippets of code should be wrapped in
<code> tags not
<pre> tags. In fact, <pre>
tags should generally be avoided. If they must
be used, extreme care should be
taken to ensure that their contents do not
have long lines (<70 chars), in order to prevent
horizontal scrolling (and possible janitor
intervention).
-
Want more info? How to link
or How to display code and escape characters
are good places to start.