[Linux-Biella] (no subject)

andrea_ferraris@libero.it linux@ml.bilug.linux.it
Wed, 24 Mar 2004 07:13:11 +0100


>From: <vallinidaniele@libero.it>

> > > #!/usr/bin/perl
> > > print "\nelaboro la rumenta di LeOS\n";
> > > open A, "path del file input";             # apro file in lettura
> > >  $"="";                                    # separatore di lista nullo
> >
> > Hai voglia di spiegarmelo? Ovvero cos'e` un operatore di lista e
> > nei dettagli quei 3 doppi apici.
>
> Separatore di lista, non operatore.
> E' analogo all' ILS di bash.

IFS? che credo abbia il torto di chiamarsi nello stesso modo anche in awk,
coi casini che ne possono derivare.

> Nell' analisi della riga voglio creare un array ma quale carattere separa
> gli elementi?
> Se gli elementi dell' array dovessero essere singole parole il separatore
> di lista, che in perl si scrive $", potrebbe essere lo spazio fra le
parole
> quindi sarebbe $"=" ";
> Se invece voglio che ogni ogni singolo carattere o spazio sia un elemento
> dell'array allora non esiste piu' uno specifico separatore quindi e' una
> stringa nulla $"="";

Grazie 1000. Adesso so che bestia e` $".

> > >  @riga=<A>;                                # creo array righe pagina
> > >  foreach $numriga(0..2)                    # processo 3 righe dati
> >
> > E se invece le voglio processare tutte?
>
> $riga=@riga                   # questo e' il numero di elementi che
compongono
>                               # l' array ( il numero di righe)
> foreach $numriga(0..$riga-1)  # processo tutte le righe

grz!

> > Questa soluzione mi ha fatto venire in mente l'analogo in sh,
> > vediamo quale e` piu` lunga ;-)
> >
> > #!/bin/sh # funziona probabilmente solo su Linux, altrimenti /usr/bin/sh
> > echo elaboro la rumenta di LeOS # e qui si risparmiano 2 doppi apici e 2
nl
> > e 1 ;
>
> no mi pare che anche in bash gli apici siano necessari:
> echo "elaboro la rumenta di LeOS"

Non sono un esperto apicettatore, pero` in questo caso funziona anche senza.

> > while read R # leggo il file (vedi linea del done) mettendo ogni riga
nella
> > variabile R
> > do
> >      echo `echo $R | cut -c7-11`" "`echo $R | cut -c23-34`
> > done < "path del file input"
> > echo finito di elaborare la rumenta di LeOS
>
> Quando pensai di usare read rimasi sviato dal suo uso normale che e' la
> lettura dello standard input, attende cioe' una immissione da tastiera.
>
> Effettivamente il meccanismo e' analogo ma imparai ad usare il perl e lo
> trovai piu' comodo per l' analisi complessa delle pagine di teso.

Credo che lo sia, e` fatto apposta.

> Mi riprometto appena posso di migliorare la mia conoscenza di bash.

E io di iniziare la mia di perl ... se la situazione lo richiedera` ;-)

Andrea