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.