Hi guys,
Need ur help again.
Source File is coming like this. sample two records are below:
<?xml version="1.0"?>
<Object>
<Header>
<XCOMVers>V1.0</XCOMVers>
<REPORT>XXXXX</REPORT>
<CODE>002</CODE>
</Header>
<IssueCard>
<Record>
<L>CAR SYSTEM -SSSSS -</L>
<L> CODE: 202</L>
<L>---</L>
<L>Message:</L>
<L>:21:XXXXXXXX</L>
<L>:103B:/1213-XX736472-567GH0</L>
<L>---</L>
<L>Confirm:</L>
<L>---</L>
<L>Data Log:</L>
<L>Created: Status-ID: R-NO: Details:</L>
<L>2010-03-25-09.51.52.484529 CREATED ICG-SSTS Message log step 1</L>
<L> 4545454555</L>
<L>2010-03-25-09.51.52.509229 SENDER ICG-SSTS Message log step 2</L>
<L>2010-03-25-09.51.52.520070 EXIT-SYSTEM ICG-SSTS Message log step 3</L>
<L> Message log step 5</L>
<L>2010-03-25-09.51.53.157416 EXIT-OK-SYSTEM ICG-SSTS Message log step 6</L>
<L> Message log step 7</L>
<L>2010-03-25-09.51.53.171452 COMPLETED ICG-SSTS Message log step 8</L>
<L> Message log step 9</L>
<L> Message log step 10</L>
<L>---</L>
</Record>
</IssueCard>
</Object>
<?xml version="1.0"?>
<Object>
<Header>
<XCOMVers>V1.0</XCOMVers>
<REPORT>XXXXX</REPORT>
<CODE>002</CODE>
</Header>
<IssueCard>
<Record>
<L>CAR SYSTEM -SSSSS -</L>
<L> CODE: 202</L>
<L>---</L>
<L>Message:</L>
<L>:21:XXXXXXXX</L>
<L>:103B:/1213-XX736472-567GH0</L>
<L>---</L>
<L>Confirm:</L>
<L>---</L>
<L>Data Log:</L>
<L>Created: Status-ID: R-NO: Details:</L>
<L>2010-03-25-09.51.52.484529 CREATED ICG-SSTS Message log step 1</L>
<L> 4545454555</L>
<L>2010-03-25-09.51.52.509229 SENDER ICG-SSTS Message log step 2</L>
<L>2010-03-25-09.51.52.520070 EXIT-SYSTEM ICG-SSTS Message log step 3</L>
<L> Message log step 5</L>
<L>2010-03-25-09.51.53.157416 EXIT-OK-SYSTEM ICG-SSTS Message log step 6</L>
<L> Message log step 7</L>
<L>2010-03-25-09.51.53.171452 COMPLETED ICG-SSTS Message log step 8</L>
<L> Message log step 9</L>
<L>---</L>
</Record>
</IssueCard>
</Object>
To fetch the header column's value i'm using below code but having performance issue. As i'm getting 2gb file.
REPORT=`perl -nle 'print /(?<=REPORT>).*?(?=<\/REPORT>)/g' Inputfile | awk '(NR==3)'`
So to fetch 15 columns value like this and for thousands of records is a performance barrier here. Is there any other way to doing this task.
Other biggest challenge i'm facing is to fetch the value under section <Data log:>
i want output for CREATED status and for COMPLETED status only.
like:
CREATION_DATE COMPLETION_DATE
2010-03-25-09.51.52.484529 2010-03-25-09.51.53.171452
Please guys help me.