L'esercizio di oggi consiste in uno script in AWK. Tanto per cambiare.
Partiamo dal principio. La sera dell'immacolata ho avuto degli ospiti. La cena mi è venuta a costare 160 euro. Di questo passo non arriverò neanche a metà mese.
Per sdrammatizzare ho creato uno script in AWK che, oltre a dirmi quando ho speso in totale, calcola anche il "peso", in termini percentuali, di ogni prodotto sul totale.
Altre cene sono previste per il 24, 27 e 31 dicembre. Tutte a casa mia. Tanto ci sono io che pago!!! :)
Se pensate che lo script possa essere impostato meglio, fatevi avanti.
Partiamo dalla lista della spesa. (tab.txt)
25 euro di gamberetti
15 euro di vino
5 euro di pasta
20 euro di trote
8 euro di insalata
25 euro di dolci
15 euro di tabacco
5 euro di nutella
25 euro un asciugacapelli
10 euro di pecorino
3 euro di stuzzicadenti
4 euro di tovaglioli
Ovviamente l'asciugacapelli non fa parte della cena. Comunque lo farò addebitare all'enel. Il vecchio si è bruciato a causa di un picco di alta tensione.Passiamo alla script (es.awk)
#!/usr/bin/awk -f
BEGIN {
print "\n\t.............START....................\n"
FORMAT="\t%-14s%-18s%s\n"
printf FORMAT,"TOTALE","PRODOTTI","COSTI %"
}
{
spesa[$4]= $1
somma += $1;
}
END {
print "\n\t",somma " euro"
for (i in spesa) {
printf FORMAT,sum,i,(100*spesa[i])/somma "%"
}
print "\n\t.................END..................\n"
}
E' inutile dirvi che va salvato nella stessa directory contenente la tabella (tab.txt).Ops, gamberetti. |
L'indice di "Brevi Esercizi" lo trovate qui.
Alla prossima!
Ciao! Cosa vuol dire: FORMAT="\t%-14s%-18s%s\n"
RispondiEliminaGrazie! I tuoi esercizi sono fatti veramente bene :)
Si tratta di un metodo per formattare le tabelle secondo le nostre esigenze. Qui trovi una breve spiegazione: https://www.gnu.org/software/gawk/manual/html_node/Printf-Examples.html
EliminaE grazie!!!! :)