Je veux trouver la pluviométrie moyenne de trois états, disons CA, TX et AX pour un mois particulier de Jan à Dec. Donné le fichier d'entrée délimité par TAB SPACES
et a le format city name, the state , and then average rainfall amounts from January through December, and then an annual average for all months
. EG peut ressembler àProgramme AWK pour trouver la pluviométrie moyenne de trois états
AVOCA PA 30 2.10 2.15 2.55 2.97 3.65 3.98 3.79 3.32 3.31 2.79 3.06 2.51 36.18
BAKERSFIELD CA 30 0.86 1.06 1.04 0.57 0.20 0.10 0.01 0.09 0.17 0.29 0.70 0.63 5.72
Ce que je veux faire est « Pour obtenir la somme des précipitations moyennes pour dire un feb mois particulier, plus dire n années, puis trouver la moyenne pour les états CA, TX et AX.
J'ai écrit le script ci-dessous awk pour faire la même chose, mais ça ne me donne pas le résultat attendu
/^CA$/ {CA++; CA_SUM+= $5} # ^CA$ - Regular Expression to match the word CA only
/^TX$/ {TX++; TX_SUM+= $5} # ^TX$ - Regular Expression to match the word TX only
/^AX$/ {AX++; AX_SUM+= $5} # ^AX$ - Regular Expression to match the word AX only
END {
CA_avg = CA_SUM/CA;
TX_avg = TX_SUM/TX;
AX_avg = AX_SUM/AX;
printf("CA Rainfall: %5.2f",CA_avg);
printf("CA Rainfall: %5.2f",TX_avg);
printf("CA Rainfall: %5.2f",AX_avg);
}
J'invoque le programme avec la commande awk 'FS="\t"'-f awk1.awk rainfall.txt
et ne voient pas la sortie.
Question: Où est-ce que je glisse? Toutes les suggestions et un code modifié seront appréciés
Vous n'avez pas encore décrit avec précision vos données; le contenu de la colonne 3 ne semble pas être une quantité de pluie. Il n'est pas clair comment vous faites face à une ville avec deux mots dans son nom (Mountain View, Atlantic City). –