lunedì 19 novembre 2012

Brevi esercizi #4 Quante volte ricorre una determinata parola in un testo

Salve!

 Eccoci qui ad una nuova puntata di "Brevi esercizi". Il problema di oggi è quello di determinare quante volte ricorre una determinata parola in un testo.

 Partiamo da questa tabella (tabella.txt)

Luigi;Marco;Nino;Nicola;Alberto;Luigi;
Marco;Giovanni;Giorgio;Maria; 
Giovanni;Ottavio;Luigi;Luigi;Nino; 
Luigi;Guglielmo;Nino;Ennio;Luigi;
Giorgio;Vittorio; 
Luca;Marta;Maria;Luigi;Salvo;
Maria;Nino;Ennio;Luigi;Maria;
Bene, dobbiamo determinare quante volte è contenuto il nome "Luigi" nel file "tabella.txt"

Vi propongo due soluzioni. Una semplice e un'altra un po' più complicata (solo un po').

Iniziamo dal metodo più semplice:
grep -o Luigi tabella.txt | wc -l
Tutto qui? Si, tutto qui!

Passiamo all'immancabile AWK! Si tratta di uno script. (es.awk)
#!/usr/bin/awk -f

BEGIN {
       print "\t"
       FS = ";"
}
{ 
   count=0
   for (i=1;i<=NF;i++) {
           if ($i=="Luigi") {
                 count++
           } 
   }
   total = total + count
}
END{ 
     print "Nel file",FILENAME, "il nome Luigi ricorre", total, "volte \t\n" 
}
Se poi preferite una sola riga di comando...
awk -F";" 'BEGIN{print "\t"} {count=0;for (i=1;i<=NF;i++) if ($i=="Luigi") count++;total=total+count} END{ print "\t"total}' tabella.txt
Ho segnato in rosso le parti che vanno modificate nel caso in cui cambia e il separatore di campo e la parola da cercare.

Ogni vostra proposta alternativa non può che essere gradita. :)

Alla prossima!

Nessun commento:

Posta un commento