LinuxForum.Fans
Тема

Проблема с перловым скриптом

Автор: Dvalin 1 сообщений 1763 просмотров
#208145

день добрый!
имеется странная проблема с небольшим перловым скриптом, крайне надеюсь на помощь..

итак, есть достаточно объемный грепнутый вывод с цисок следующего вида

text
$ 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;

кат скрипта:

text

$ 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"; } }

и получаемый вывод:

text

$ 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

text
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;

центос крутится под виртуалкой, думаю, не в этом ли проблема...
спасибо заранее, очень надеюсь на помощь..

Войдите или зарегистрируйтесь, чтобы ответить.