in reply to just another search program
It appears from the example that the 'Network name' is a header, and are multiple 'Interface records', but it's not clear whether there could be multiple Network Name/Interface groups per file? The following assumes not.
It would also appear that could be more than one "address above Monitored circuit.", going by the "Number of addresses" field. I don't think either of the other solutions would cater for that? If so, this might be useful. I've also captured and output the Number of IPs value, but that is easily removed or discarded.
You'll note that this makes no attempt to verify the format or legality of the ip addresses whilst parsing the file, simply treating them as whitespace delimited tokens. If you need to verify the addresses, that is better done as a separate step.
#! perl -slw use strict; my( $nName, $iName, $vrid, $state, $paddr, $nAddr, $oAddrs, @oAddrs ); die "File does not contain a Network name header" unless ( $nName ) = <DATA> =~ m[Network\sname \s+ (\S+)]x; local $/ = "\nI"; while( <DATA> ) { if( ( $iName, $vrid, $state, $paddr, $nAddr, $oAddrs ) = m[ (?=.*? nterface \s+ (\S+) ) (?=.*? VRID \s+ (\S+) ) (?=.*? State: \s+ (\S+) ) (?=.*? Primary\saddress: \s+ (\S+) ) (?=.*? Number\saddresses: \s+ (\S+) ( .+? ) (?=Monitored\scircuits:) ) ]smx ) { @oAddrs = split ' ', $oAddrs; print join ', ', $nName, $iName, $vrid, $state, $paddr, $nAddr +, @oAddrs; } else { warn "File did not match required format"; } }
Output
C:\test>junk1 A, WEB_A, 145, Master, 194.551.205.250, 1, 135.51.045.242 A, WEB_B, 145, backup, 19.51.205.20, 2, 135.51.05.22, 321.654.987.111 A, WEB_C, 145, backup, 19.51.205.20, 3, 135.51.05.22, 123.456.789.001, + 321.654.987.111
Extended dataset
__DATA__ Network name A Interface WEB_A ggggggggg VRID 145 State: Master XXXXXXXXXXXX Effective Priority: 200 07:09:56:04:0t:ef Primary address: 194.551.205.250 Number addresses: 1 135.51.045.242 Monitored circuits: vbgghdfgdfg Interface WEB_B ggggggggg Agggggg VRID 145 State: backup XXXXXXXXXXXX Effective Priority: 200 07:09:56:04:0t:ef Primary address: 19.51.205.20 Next advertisement: 0 Number addresses: 2 135.51.05.22 321.654.987.111 Monitored circuits: vbgghdfgdfg Interface WEB_C ggggggggg Agggggg VRID 145 State: backup XXXXXXXXXXXX Effective Priority: 200 07:09:56:04:0t:ef Primary address: 19.51.205.20 Next advertisement: 0 Number addresses: 3 135.51.05.22 123.456.789.001 321.654.987.111 Monitored circuits: vbgghdfgdfg
|
|---|
| Replies are listed 'Best First'. | |
|---|---|
|
Re^2: just another search program
by sunny (Initiate) on Feb 13, 2006 at 10:54 UTC | |
by BrowserUk (Patriarch) on Feb 13, 2006 at 12:33 UTC | |
by sunny (Initiate) on Feb 14, 2006 at 08:23 UTC | |
by sunny (Initiate) on Feb 15, 2006 at 08:09 UTC | |
by BrowserUk (Patriarch) on Feb 15, 2006 at 16:06 UTC |