Hello Monks ,
I have the following input file which I try to capture data from :
end
sleep 10
dis qremote(MQSI.3PL846)RNAMERQMNAME1 : dis qremote(MQSI.3PL846) RNAME
+ RQMNAME
AMQ8409: Display Queue details.QUEUE(MQSI.3PL846)TYPE(QREMOTE)RQMNAME(
+MSTBKRQ1)RNAME(MQSI.3PL846)
end2 : end
Starting MQSC for queue manager NTTCSWQ1.
AMQ8409: Display Queue details.QUEUE(MQSI.3PL944)TYPE(QREMOTE)RQMNAME(
+MSTBKRQ1)RNAME(MQSI.3PL944)
exit
5724-H72 (C) Copyright IBM Corp. 1994, 2004. ALL RIGHTS RESERVED.
1 : dis qremote(MQSI.ADM850) RNAME RQMNAME
AMQ8409: Display Queue details.
QUEUE(MQSI.ADM850) TYPE(QREMOTE)
RQMNAME(MSTBKRQ1) RNAME(MQSI.ADM850)
2 : end
end
sleep 10
exit
AMQ8409: Display Queue details.
QUEUE(MQSI.ADMAPTR) TYPE(QREMOTE)
RQMNAME(MSTBKRQ1) RNAME(MQSI.ADMAPTR)
2 : end
One MQSC command read.
No commands have a syntax error.
All valid MQSC commands were processed.
what I am trying to capture is the QUEUE , RNAME and RQNAME values everytime I see the code AMQ8409, but as you can see the values which I am looking for can be on one line or somtimes written in 2 lines, so I did the following :
foreach my $line (<INPUT>) {
my $match_queue = qr{ QUEUE # literal word 'QUEUE'
\( # literal open paren
(.*?) # non-greedy capture of >=0
\) # literal close paren
}xms;
my $match_rname = qr{ RNAME # literal word 'RNAME'
\( # literal open paren
(.*?) # non-greedy capture of >=0
\) # literal close paren
}xms;
my $match_qmname = qr{ RQMNAME # literal word 'RQMNAME'
\( # literal open paren
(.*?) # non-greedy capture of >=0
\) # literal close paren
}xms;
if ( $line =~ /AMQ8409/ ) {
#if ( $line =~ /AMQ8409/ || $line =~ /\s\s\sQUEUE\(/ || $line =~ /RNAM
+E/ ) {
my ($queue) = ($line =~ $match_queue);
my ($rname) = ($line =~ $match_rname);
my ($qmname) = ($line =~ $match_qmname);
This is capturing the value for only the first 2 times the code AMQ8409 appears , I am not able to caputre the other 2 because the way the input file is written . Can someone advice of a way to do that ? thanks much
-
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.
|