salve a tutti

mi scuso per il titolo non proprio felicissimo ma non me ne veniva in mente uno più specifico.

il problema che vorrei esporvi è il seguente:

ho un file di testo, turni.txt, in esso sono contenuti secondo una struttura ben precisa, la data, l'orario del turno e il nome della persona che l'ha fatto.

codice:
domenica  01/07/2007 - turno 03:00 / 11:00 (nome1 + nome3)
domenica  01/07/2007 - turno 11:00 / 19:00 (nome2)
lunedi    02/07/2007 - turno 03:00 / 11:00 (nome1 + nome2)
lunedi    02/07/2007 - turno 11:00 / 19:00 (nome3)
martedi   03/07/2007 - turno 03:00 / 11:00 (nome1 + nome2)
martedi   03/07/2007 - turno 11:00 / 19:00 (nome3)
mercoledi 04/07/2007 - turno 03:00 / 11:00 (nome1 + nome2)
mercoledi 04/07/2007 - turno 11:00 / 19:00 (nome3)
giovedi   05/07/2007 - turno 03:00 / 11:00 (nome1 + nome2)
giovedi   05/07/2007 - turno 11:00 / 19:00 (nome3)
venerdi   06/07/2007 - turno 03:00 / 11:00 (nome1 + nome2)
venerdi   06/07/2007 - turno 11:00 / 19:00 (nome3)
sabato    07/07/2007 - turno 03:00 / 11:00 (nome1 + nome3)
sabato    07/07/2007 - turno 11:00 / 19:00 (nome2)
domenica  08/07/2007 - turno 03:00 / 11:00 (nome1 + nome3)
domenica  08/07/2007 - turno 11:00 / 19:00 (nome2)
ho la necessità, a fine mese, di contare quanti turni sono stati eseguiti da una determinata persona, per fare questo pensavo di passare il tutto con cat e grep

il problema sorge nella numerazione delle righe che non è "consecutiva" naturalmente perchè tiene conto anche di quelle che non vengono visualizzate a causa del grep.

ho quindi pensato di poter risolvere in questo modo:

codice:
#!/bin/bash
# script per il conteggio dei turni eseguiti

echo inserisci il nome 
read nome

cat turni.txt | grep $nome 1>turni_$nome.log
cat -n <turni_$nome.log >turni_$nome.txt 
rm turni_$nome.log
totale=`cat turni_$nome.txt | sort -rn | head -1 | cut -c 0-6`

echo il numero dei turni compiuti è $totale >>turni_$nome.txt

exit 0
sicuramente non è eccelso nella forma, ma pare funzionare a dovere, se avete qualche suggerimento per "snellire" un pò dite pure.