Quantcast
Channel: ¿Como extraer data PERL? - Stack Overflow en español
Viewing all articles
Browse latest Browse all 2

¿Como extraer data PERL?

$
0
0

Estoy haciendo una conexión vía telnet donde me conecto a una maquina y se le ingresa un comando querydmc id en donde id= es un numero, este proceso se va ejecutando 14 veces por ende va desde el 1 al 14 cada recorrido obtiene información diferente, adjunto 3 ejemplo de como es el resultado:

querydmc 1                        Unit: DMC  1               Primary State: IS             Secondary State:               FW Load in RAM:        DDM50AK01              FW Load in FLASH A:        DDM50AK01              FW Load in FLASH B:        DDM50AK01                    Circuit Pack: NTBN19EA               Serial Number: FL000MF         Manufacturer's Date: 06/JUN/2004Modem:  1  Primary State: IS  Secondary State:        DS CP:   5 Spectrum_Chan_Code: 1559       US CP:  32 Spectrum_Chan_Code: 80       TX LEVEL: 50 dBmV  RX LEVEL: 15 dBmVModem:  2  Primary State: IS  Secondary State:        DS CP:   9 Spectrum_Chan_Code: 1551       US CP:   6 Spectrum_Chan_Code: 80       TX LEVEL: 50 dBmV  RX LEVEL: 8 dBmV
querydmc 2                        Unit: DMC  2               Primary State: IS             Secondary State:               FW Load in RAM:        DDM20BM01              FW Load in FLASH A:        DDM20BM01              FW Load in FLASH B:        DDM20BM01                    Circuit Pack: NTBN19CA               Serial Number: WZ16REZ         Manufacturer's Date: 27/NOV/2000Modem:  1  Primary State: IS  Secondary State:        DS CP:   1 Spectrum_Chan_Code: 1503       US CP:  18 Spectrum_Chan_Code: 94       TX LEVEL: 51 dBmV  RX LEVEL: 20 dBmVModem:  2  Primary State: IS  Secondary State:        DS CP:   1 Spectrum_Chan_Code: 1535       US CP:  16 Spectrum_Chan_Code: 80       TX LEVEL: 51 dBmV  RX LEVEL: 7 dBmV
querydmc 3                        Unit: DMC  3               Primary State: IS             Secondary State:               FW Load in RAM:        DDM20BM01              FW Load in FLASH A:        DDM20BM01              FW Load in FLASH B:        DDM20BM01                    Circuit Pack: NTBN19AA               Serial Number: Z1A3BYM         Manufacturer's Date: 22/JAN/1997Modem:  1  Primary State: IS  Secondary State:        DS CP:  11 Spectrum_Chan_Code: 1551       US CP:  36 Spectrum_Chan_Code: 94       TX LEVEL: 50 dBmV  RX LEVEL: 15 dBmVModem:  2  Primary State: IS  Secondary State:        DS CP:  13 Spectrum_Chan_Code: 1551       US CP:  38 Spectrum_Chan_Code: 80       TX LEVEL: 50 dBmV  RX LEVEL: 5 dBmV

NOTA: Puede que un querydmc id no traiga ninguna información el resultado es el siguiente:

>querydmc 4

Specified DMC does not exist.

Lo que he probado:

DMC: for my $dmc (1..14){    $t->print("querydmc $dmc");    my ($pmatch, $match) = $t->waitfor (        Match => '/>$/'        , Timeout => $timeout*3 );    my $modemReached = 0;    for my $line (split "\r", $pmatch)     {        $line =~ s/\s*\n$//;        if ($line =~ /^Modem:\s+([0-9]+)\s+(.*)/ || $modemReached > 0) {            my $modem = $1;            my $subtitle = $modem ? $2 : $line;            if ($subtitle =~ /^([^:]+):\s+(\S+( dBmV)?)\s+([^:]+):(.*)/)             {                my $key1    = $1;                my $value1  = $2;                my $key2    = $4;                my $value2  = $5;                print "$modem\n";                print "$key1: $value1\n";                print "$key2: $value2\n";            }            $modemReached = 1;        }        else {            my ($key, $value) = split /:/, $line;            print "$key => $value\n";        }    }}

La respuesta que obtengo:

querydmc 1 =>                         Unit =>  DMC  1               Primary State =>  IS             Secondary State =>               FW Load in RAM =>         DDM20BM01              FW Load in FLASH A =>         DDM20BM01              FW Load in FLASH B =>         DDM20BM01                    Circuit Pack =>  NTBN19AA               Serial Number =>  R1AGX1W         Manufacturer's Date =>  13/AUG/19981Primary State: ISSecondary State:        DS CP: 1Spectrum_Chan_Code:  1535       US CP: 2Spectrum_Chan_Code:  80       TX LEVEL: 50 dBmVRX LEVEL:  15 dBmV2Primary State: ISSecondary State:        DS CP: 1Spectrum_Chan_Code:  1559       US CP: 2Spectrum_Chan_Code:  94       TX LEVEL: 50 dBmVRX LEVEL:  8 dBmV

Lo que deseo obtener para guardar en la base de datos:

MODEM  |       KEY             |   VALUE null      Unit                    DMC 1null      Primary State           ISnull      Secondary State      null      FW Load in RAM          DDM20BM01null      FW Load in FLASH A      DDM20BM01null      FW Load in FLASH B      DDM20BM01null      Circuit Pack            NTBN19AAnull      Serial Number           R1AGX1Wnull      Manufacturer's Date     13/AUG/19981         Primary State           IS1         Secondary State1         DS CP                   11         Spectrum_Chan_Code      15351         US CP                   21         Spectrum_Chan_Code      801         TX LEVEL                50 dBmV1         RX LEVEL                15 dBmV2         Primary State           IS2         Secondary State2         DS CP                   12         Spectrum_Chan_Code      15592         US CP                   22         Spectrum_Chan_Code      942         TX LEVEL                50 dBmV2         RX LEVEL                8 dBmV   

Viewing all articles
Browse latest Browse all 2

Latest Images

Trending Articles





Latest Images