[Linuxtrent] Re: Estrarre un valore da un file ascii tramite la shell

  • From: Gino Perna <gino@xxxxxxxxxxxx>
  • To: linuxtrent@xxxxxxxxxxxxx
  • Date: Thu, 8 Apr 2010 14:34:38 +0200

On Thu, Apr 08, 2010 at 02:08:22PM +0200, Marco Agostini wrote:
> La mia necessità è quella di eseguire un comando in base al valore
> contenuto in uno specifico file.
> 
> Il file TEMPERATURA.HTM contiene le seguenti righe:
> 
> <tr>
> <td> </td>
> <td><b>Remote Temperature</b><i> (Degrees C)</i></td>
> <td><table><tr><td><b>22</b></td></tr></table></td>
> </tr>
> 
> nell'esempio ho bisogno di confrontare il valore 22 e fare in modo che
> se tale valore è superiore a 26 eseguire un comando esterno.
> 
> nb. la dimensione del file TEMPERATURA.HTM è sempre variabile, il
> valore 22 _non_ si trova sempre allo stesso numero di riga ma il
> blocco riportato sopra è sempre uguale (a parte il valore numerico

Il mio suggerimento e' di NON farlo con uno script shell, per non trovarti 
ulteriori problemi nel momento che il valore diventasse decimale o che ci 
fossero altre alchimie da fare.
Ti consiglio il perl o python

qui sotto ti metto un piccolo hint per un metodo che fa la richiesta http e 
processa una riga dell'uscita
contente il parametro idMax

> sub retrieve_idmax{
        my ($ids) = @_;
        my $URL = 
"http://xxx.comunelevico.it/cgi-bin/facaldo/reqlastid.cgi?idsede=$ids";;
        my $browser = LWP::UserAgent->new();
        my $rmax = -1;
        $browser->timeout(10);

        my $request = HTTP::Request->new(GET => $URL);
        my $response = $browser->request($request);
        if ($response->is_error()) {
#       printf "%s\n", $response->status_line;
                return $rmax;
        } else {
                my $contents = $response->content();
#               print "Pagina:>$contents<\n";
                if ( $contents =~ m/idMax\n(\d+)\n/ ){
                  $rmax = $1;
#                 print "Maxid: $1\n";
                }
        }
        return $rmax;
}



ciao
gino

-- 
Per iscriversi  (o disiscriversi), basta spedire un  messaggio con OGGETTO
"subscribe" (o "unsubscribe") a mailto:linuxtrent-request@xxxxxxxxxxxxx


Other related posts: