день добрый!
имеется странная проблема с небольшим перловым скриптом, крайне надеюсь на помощь..
итак, есть достаточно объемный грепнутый вывод с цисок следующего вида
$ cat data
AGG22;sh inve
AGG22;NAME: "CISCO7606-S", DESCR: "Cisco Systems Cisco 7600 6-slot Chassis System"
AGG22;CISCO7606-S;SN FOX
AGG22;
AGG22;NAME: "CLK-7600 1", DESCR: "OSR-7600 Clock FRU 1"
AGG22;CLK-7600;SN NWG
AGG22;
AGG22;NAME: "CLK-7600 2", DESCR: "OSR-7600 Clock FRU 2"
AGG22;CLK-7600;SN NWG
AGG22;
кат скрипта:
$ cat translate.pl
#!/usr/bin/perl
use strict;
use warnings;
my $crap;
my $descr;
my $result;
while ( my $line = <STDIN> )
{
chomp ($line);
if ( $line =~ /;\n/ )
{next;}
if ( $line =~ / inve/ )
{next;}
chomp ($line);
print "new iteration\n";
print "$line\n";
if ( $line =~ /.*DESCR.*/)
{
print "descr line found!\n";
($crap, $descr) = split (/DESCR: /, $line);
print "$descr\n";
next;
}
if ($line =~ /.*SN.*/){
print "SN line found!!!!\n";
print "$line"."$descr"."\n";
}
}
и получаемый вывод:
$ perl translate.pl < data
"Cisco Systems Cisco 7600 6-slot Chassis System"
"OSR-7600 Clock FRU 1"LK-7600;SN NWG
"OSR-7600 Clock FRU 2"LK-7600;SN NWG
предполагается, что скрипт должен взять содержимое строки n-1 после ключевого слова "DESCR: " и вписать его в конец строки n .. но блин, такое ощущение, что содержимое записывается с начала строки, хотя стоит оператор ".".. да и без него тоже самое..
вывод с дебаговыми принтами:
$ perl translate.pl < data
new iteration
AGG22;NAME: "CISCO7606-S", DESCR: "Cisco Systems Cisco 7600 6-slot Chassis System"
descr line found!
"Cisco Systems Cisco 7600 6-slot Chassis System"
new iteration
AGG22;CISCO7606-S;SN FOX
SN line found!!!!
"Cisco Systems Cisco 7600 6-slot Chassis System"
new iteration
AGG22;
new iteration
AGG22;NAME: "CLK-7600 1", DESCR: "OSR-7600 Clock FRU 1"
descr line found!
"OSR-7600 Clock FRU 1"
new iteration
AGG22;CLK-7600;SN NWG
SN line found!!!!
"OSR-7600 Clock FRU 1"LK-7600;SN NWG
new iteration
AGG22;
new iteration
AGG22;NAME: "CLK-7600 2", DESCR: "OSR-7600 Clock FRU 2"
descr line found!
"OSR-7600 Clock FRU 2"
new iteration
AGG22;CLK-7600;SN NWG
SN line found!!!!
"OSR-7600 Clock FRU 2"LK-7600;SN NWG
new iteration
AGG22;
центос крутится под виртуалкой, думаю, не в этом ли проблема...
спасибо заранее, очень надеюсь на помощь..