[Linux-Biella] Script bash che prende dati dallo standard input come grep/awk/sed: da pipe, tail ecc...
Paul TT
paultt a bilug.linux.it
Lun 25 Maggio 2009 15:49:40 CEST
vallini.daniele a bilug.linux.it wrote:
> On Sun, May 24, 2009 at 01:00:12AM +0200, Daniele Segato wrote:
>
>
>> Il giorno ven, 22/05/2009 alle 18.13 +0200,
>> vallini.daniele a bilug.linux.it ha scritto:
>>
>>> Se vuoi immissione in piu' righe si deve raggirare il problema della NL.
>>>
>> come?
>>
>
> bash non supporta array multidimensionali, ogni linea deve essere un array
> monodimensionale.
> Non ho mai avuto esperienza di tali casini ma se intendi immettere solo due o
> tre righe di variabili da standard input farei una cosa simile:
>
> ----------------------------------------------------------------------
> #! /bin/sh
>
> leggo(){
> echo "
> immetti la prima serie di variabili seguita da Inv
> "
> read x ##### $x e' il primo array monodimensionale
> if [ "$x" = "" ]
> then
> echo "
> sveglia figliolo, chi dorme non piglia pesci
> "
> leggo ###### ritorno alla funzione poiche' nulla e' stato immesso
> fi
> leggo1 #### funzione di lettura della seconda linea
> }
>
> leggo1(){
> echo "
> immetti la seconda serie di variabili seguita da Inv
> altrimenti premi solamente Inv per procedere
> "
> read y ###### $y e' il secondo array monodimensionale
> if [ "$y" = "" ]
> then
> successiva #nome della funzione successiva
> else
> leggo2 # funzione di lettura della terza linea
> fi
> }
>
> leggo2(){
> echo "
> immetti la terza serie di variabili seguita da Inv
> altrimenti premi solamente Inv per procedere
> "
> read z ####### $z e' il terzo array monodimensionale
> echo "
> Non prevedo altre serie di variabili
> se vuoi scrivere il nuovo testamento
> e' preferibile un editor
> "
> successiva #nome della successiva funzione
> }
>
> successiva(){
> echo "
> la funzione successiva e' ancora da scrivere
> ora ho altro da fare
> "
> exit
> }
>
> leggo
>
> ----------------------------------------------------------------------
>
>
>
>>> Perl e' il piu' adatto al parsing di file, ti risparmia grep,sed,awk ed
>>> altre consimili rumente.
>>>
>> si ho capito..
>> ma supponiamo che NON ESISTA altro che i tool GNU
>>
>
> Bene ma perl e' sempre presente in una distribuzione Linux, molti programmi
> sono scritti in perl, te ne cito a caso prendendo quelli che iniziano per d:
>
> debconf vari, defoma, dh vari, dirsplit, dpkg vari,
>
si', non ho tempo di vardare, ma tra l'altro, tra i programmi gnu (e
intendo per gnu.org) direi che qualcosa scritto in perl ci sia ;P
> ....
>> ho uno script che dato un file mi estrae dei dati analizzando riga per
>> riga? (o pił righe alla volta?)
>>
>> bene..
>>
>> mi piacerebbe poter lanciare quello script su un tail del file
>>
>
> Se ho capito giusto, se e' per analizzare ulteriormente l'output del tail
> personalmente, per non allungare troppo il piping ed avere dei punti di
> debug manderei l'output del tail su un file, quindi lancerei il tuo nuovo
> script con input quel file da ulteriormente analizzare.
>
mah, per provare si', ma se poi funzica come deve, il pipe/ridirezione
non sono affatto da sottovalutare, anzi.....
> Cosa deve fare il secondo script sull'output del tail?
>
--
Keep Moving Forward
Maggiori informazioni sulla lista
Linux