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