venerdì 14 agosto 2015

Analisi di un testo [AWK]

Salve!

È da un po' che non scrivo sul blog. Purtroppo d'estate è sempre così. E poi considerando l'eccezionalità del caldo di quest'anno non avrei dovuto scrivere almeno fino al quindici settembre. Dai, speriamo che finisca presto e che ritorni prima di subito il freddo.
Intanto vi dico che lo sviluppo di Lubit 6 prosegue. Si spera che esca per la fine di settembre. Prossimamente vi anticiperemo qualcosa.

Vabbe', oggi voglio semplicemente pubblicare un piccolo script in awk che, dandogli in pasto un testo, vi ritorna il numero totale di righe, di parole, di caratteri, di consonanti e il numero totale di ciascuna vocale.

 
Il testo
Output
Lo script:

#!/usr/bin/awk -f
#Bit3Lux
#count.awk
#Numero di ciascuna vocale, numero di righe, numero di parole,
#Numero di caratteri, numero di consonanti.

BEGIN {
  print "\n\tREPORT\n"

}

{
 Numero_parole += NF
 Numero_caratteri += length
 A += gsub (/[Aaà]/,"*", $0)
 E += gsub (/[EÈeèé]/,"*", $0)
 I += gsub (/[Iiì]/,"*", $0)
 O += gsub (/[Ooò]/,"*", $0)
 U += gsub (/[Uuù]/,"*", $0)
 vocali = A+E+I+O+U

}

END {
  print "\n\tNumero di righe: " NR
  print "\tNumero di parole: " Numero_parole
  print "\tNumero di caratteri: " Numero_caratteri
  print "\tNumero di consonanti: " Numero_caratteri - vocali
  print "\tNumero vocali: " vocali
  print "\tVocale a: " A
  print "\tVocale e: " E
  print "\tVocale i: " I
  print "\tVocale o : " O
  print "\tVocale u: " U"\n"
   
}

Insomma è tutto estremamente semplice, è stato un modo per rompere il ghiaccio (si fa per dire). E poi, ora che guardo meglio, c'è anche un piccolo errore, scopritelo voi... ;)

Per quanto riguarda il blog, bollono in pentola tante idee e tante novità. Si spera che al più presto si possa iniziare con un corso di Sistema linux, un corso su Sed e tanti esercizi su bash, awk, python, lua e... insomma si prospetta un autunno caldissimo (no aspetta, meglio freddissimo :D)

Alla prossima!