[Linux-Biella] Sempre script...
Simone Caldana
linux@bilug.linux.it
Mon, 09 Jun 2003 15:22:13 +0200
CIARROCCHI Paolo wrote:
> From: Simone Caldana [mailto:simone@caldana.org]
>
>>Usa nawk o gawk. io ho fatto man awk su linux, ed e' gawk. su solaris
>>awk e basta e' molto limitato, probabilmente non ha l'operatore ?:
>
>
> Ah... mi sembrava di aver gia' provato con nawk,
> ma evidentemente mi sbaglio.
>
> Ora ho provato cosi:
>
> bash-2.05$ cat maxMOMT.awk
> BEGIN{
> FS=";";
> minmt=0;
> maxmt=0;
> minmo=0;
> maxmt=0;
> }
> {
> minmo=(minmo<$3)?minmo:$3;
> maxmo=(maxmo>$3)?maxmo:$3;
> minmt=(minmt<$4)?minmt:$4;
> maxmt=(maxmt>$4)?maxmt:$4;
> }
> END{
> print "MO: " minmo maxmo "\n" "MT: " minmt maxmt
> }
>
> bash-2.05$ nawk -f maxMOMT.awk <prova.txt
> MO: 05620
> MT: 08067
>
> Evvai!!! Funziona!!!!
>
> A me interessa solo il max, percio' ora cancello la parte
> relativa al minimo, che pero' cosi come e' fatta non puo' funzionare.
>
> minmt=0
> Poi minmt=(minmt<$4)?minmt:$4 -> minmt viene sempre comparato con 0,
> percio' il risultato finale e' sempre 0.
c'era qualcosa che non mi convinceva, infatti :)
aggiungi dopo il blocco begin:
NR==1{minmo=$3;minmt=$4;}
> Una ultima cosa, io vorrei stampare il campo $2 che corrisponde al maxmo e maxmt.
> Esiste un modo piu' semplice di grep|cut dei due massimi ?
memorizzi il campo insieme al maxmt attuale. a questoi punto conviene un
if invece dell'operatore ternario.
--
. Simone Caldana: Pear Minister of Foreign Affairs .
. Aiming to become a vi mug - currently jumping around .
. simone@caldana.org http://simone.caldana.org .