[Linux-Biella] Sempre script...

CIARROCCHI Paolo linux@bilug.linux.it
Mon, 9 Jun 2003 15:16:23 +0200


From: Simone Caldana [mailto:simone@caldana.org]
> Usa nawk o gawk. io ho fatto man awk su linux, ed e' gawk. su solaris=20
> awk e basta e' molto limitato, probabilmente non ha l'operatore ?:

Ah... mi sembrava di aver gia' provato con nawk,=20
ma evidentemente mi sbaglio.

Ora ho provato cosi:

bash-2.05$ cat maxMOMT.awk
BEGIN{
        FS=3D";";
        minmt=3D0;
        maxmt=3D0;
        minmo=3D0;
        maxmt=3D0;
}
{
        minmo=3D(minmo<$3)?minmo:$3;
        maxmo=3D(maxmo>$3)?maxmo:$3;
        minmt=3D(minmt<$4)?minmt:$4;
        maxmt=3D(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=20
relativa al minimo, che pero' cosi come e' fatta non puo' funzionare.

minmt=3D0
Poi  minmt=3D(minmt<$4)?minmt:$4 -> minmt viene sempre comparato con 0,
percio' il risultato finale e' sempre 0.

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 ?

> (ps: occhio che c'e' un altro refuso, per MT il campo da=20
> comparare e' $4=20
> e non $3)

Si si, me ne ero accorto e l'ho corretto ;-)

		Paolo