Originariamente inviato da Smoke666
Grazie per la risposta! Volevo anche chiederti se era lecito fare una cosa del genere:
codice:
exec > $1 | grep -i -q PIPPO | let $count+=[cut -d" " -f 2]
Ovvero reindirizzo lo stdout e il comando grep lo invoco senza il percorso del file... Inoltre grep trova solo la prima occorrenza della parola o tutte le occorrenze? Non l'ho trovato da nessuna parte..Grazie in anticipo mi sei stato utilissimo!


Edit: Dimenticavo di esplicitare che eseguo exec >$1 perchè il file lo passo come parametro!
Provalo Comunque dovrebbe essere così

for i in `cat $1 | grep -i -q PIPPO | cut -d" " -f 2`
do
let $count+=$i
done

con il for la i assume ad ogni ciclo uno dei valori che ti tiri fuori con la stringa (vediti come funzionano gli apici rovesciati `) e li somma uno per uno a $count

edit: la tua stringa non funziona perchè gli chiedi di eseguire il file che vuoi visualizzare, quindi metti cat prima, che ti permette appunto di mandare in stdout il contenuto del file, lo mandi a grep che ti trova TUTTE le righe che contengono PIPPO, e l'output di grep lo reindirizzi a cut che ti prende solo i valori di cui hai bisogno e li manda in stdout uno per riga (se il file è fatto come hai spiegato te nel primo post), il ciclo for legge una riga per volta e la aggiunge a $count. Volendo potresti mettere un controllo sul fatto che $i sia un numero o meno, ma quello dipende da cosa devi fare con lo script, se sei sicuro che il file $1 sia fatto bene non ce n'è bisogno.