[Linux-Biella] Script bash che prende dati dallo standard input come grep/awk/sed: da pipe, tail ecc...
vallini.daniele a bilug.linux.it
vallini.daniele a bilug.linux.it
Dom 24 Maggio 2009 15:34:41 CEST
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,
>
> > > echo "qualcosa" | mioscript.sh
> >
> > ma vuoi appendere qualcosa al file o passargli un comando tramite quel
> > "qualcosa"?
>
> 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.
Cosa deve fare il secondo script sull'output del tail?
Maggiori informazioni sulla lista
Linux