in reply to Re: Parsing log file with regular-expression match nested brackets
in thread Parsing log file with regular-expression match nested brackets [RESOLVED]
Hello 1nickt,
Well my first step is to read the log file into a string as I am doing. Then as a second step is to split complete entities from log file into separate array elements that start with ([ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: UDT{) and end with (}).
As a third step I want them to spit each array element into separate lines based on new line characters (\n) into separate element on sub array. The reason that I want to do that is to have concrete element reference so when I will be using loops with regular expressions rules to search through the array elements it will match.
My ultimate goal is to match entities "first level array elements" with each other based on similarities with in the lines.
It sounds a bit of complicated so I will try to simplify it.
Let say that I have a log file:
[ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: UDT{ [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine2: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine3: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine4: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine5: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine6: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine7: data } [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: UDT{ [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine10: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine11: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine12: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine13: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine14: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine15: data }
For simplicity reasons I kept the sample of log file without any complexities.
So lets assume that: [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: line7: data contains some data that I want to fine exactly the same match on the log file e.g.: [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: line11: data
.it would be very simple if we wanted to catch the single line but I need to return the whole array containing all the lines that starts [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: UDT{ and ends with }.
So the expected and desired result would be a hash:
$VAR1 = { 'Test1' => { '[ 11] 25/2/2017-19:02:06.980 proces_nam +e thanos-Rx: UDT{ [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine2: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine3: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine4: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine5: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine6: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Rx: l +ine7: data }' }, 'Test2' => { '[ 11] 25/2/2017-19:02:06.980 proces_name + thanos-Tx: UDT{ [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine10: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine11: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine12: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine13: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine14: data [ 11] 25/2/2017-19:02:06.980 proces_name thanos-Tx: l +ine15: data }' } };
I hope my explanation did not confused more it helped you to understand my approach to my problem.
If you have any further questions please do not hesitate to ask.
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^3: Parsing log file with regular-expression match nested brackets
by 1nickt (Canon) on Feb 28, 2017 at 16:43 UTC | |
by thanos1983 (Parson) on Feb 28, 2017 at 17:03 UTC | |
by poj (Abbot) on Feb 28, 2017 at 17:23 UTC | |
by thanos1983 (Parson) on Feb 28, 2017 at 22:36 UTC |