[Tech] O' Perl
Duncan Wilcox
duncan@mclink.it
Gio 14 Giu 2001 11:51:39 CEST
At 11.40 14/06/2001 +0200, you wrote:
>dato il file :
>STOR 000 0*055*12345678#
>STOR 001 0*055*987654321#
>[...]
>STOR 999 0*055*333333#
>
>io modifico, ad esempio, la riga 2:
>STOR 001 0*06*3131#
>
>poi devo inviare i dati sulla seriale, eliminando STOR e inserendo a fine
>riga due return:
>
>dati in uscita:
>
>000 0*055*12345678#<cr><cr> //la riga non e' cambiata
>001 0*06*3131#<cr><cr> //riga modificata
>[...]
>999 0*055*333333#<cr><cr> //la riga non e' cambiata
><cr> //a fine file va inviato un
> //<cr> supplementare.
Non ho capito come e perche' vorresti modificare la riga 2, nel tuo esempio.
La traduzione da un formato all'altro e' abbastanza banale (scritto al
volo, untested):
----------------------------------------
#!/usr/bin/perl
$in = $ARGV[0];
$out = $ARGV[1];
open(IN, $in) || die;
open(OUT, "+>$out") || die;
while($line = <IN>) {
$in =~ s/[\r\n]$//; # elimina i fine riga vari
$in =~ s/^STOR //; # elimina lo "STOR " iniziale
print OUT "$in\r\r";
}
print OUT "\r"; # cr finale
close(OUT);
close(IN);
----------------------------------------
Puoi lanciarlo passando come primo argomento il file in ingresso e come
secondo il device seriale del caso (/dev/ttyS1, ad esempio).
Duncan
Maggiori informazioni sulla lista
flug-tech