in reply to
How we can do regex of this?
Consider unpack instead of a regex:
use warnings;
use strict;
while (<DATA>) {
my @cols = unpack 'A5A28A19A*', $_;
if ($cols[0] =~ /^[\d\s]+$/) { # ignore header rows
$cols[0] =~ s/\s//g;
print "SLOT = $cols[0]\n";
print "Desc = $cols[1]\n";
print "Model = $cols[2]\n";
}
}
__DATA__
Mod Sub-Module Model Serial
---- --------------------------- ------------------ -----------
1 Distributed Forwarding Card WS-F6700-DFC3CXL SAL1434RLPY
3 7600 ES+ DFC XL 7600-ES+3CXL JAE14520N29
3 7600 ES+T 20x1GE SFP 76-ES+T-20GQ JAE145301XM
5 Policy Feature Card 3 7600-PFC3CXL JAE14330E6J
5 C7600 MSFC4 Daughterboard 7600-MSFC4 JAE14320QBE
6 Policy Feature Card 3 7600-PFC3CXL JAE14330EAO
6 C7600 MSFC4 Daughterboard 7600-MSFC4 JAE14320QA8
7 Distributed Forwarding Card WS-F6700-DFC3CXL SAL1433QHBR
8 Distributed Forwarding Card WS-F6700-DFC3CXL SAL1433QXF9
Prints:
SLOT = 1
Desc = Distributed Forwarding Card
Model = WS-F6700-DFC3CXL
SLOT = 3
Desc = 7600 ES+ DFC XL
Model = 7600-ES+3CXL
SLOT = 3
Desc = 7600 ES+T 20x1GE SFP
Model = 76-ES+T-20GQ
SLOT = 5
Desc = Policy Feature Card 3
Model = 7600-PFC3CXL
SLOT = 5
Desc = C7600 MSFC4 Daughterboard
Model = 7600-MSFC4
SLOT = 6
Desc = Policy Feature Card 3
Model = 7600-PFC3CXL
SLOT = 6
Desc = C7600 MSFC4 Daughterboard
Model = 7600-MSFC4
SLOT = 7
Desc = Distributed Forwarding Card
Model = WS-F6700-DFC3CXL
SLOT = 8
Desc = Distributed Forwarding Card
Model = WS-F6700-DFC3CXL