Я хочу найти среднее количество осадков в трех штатах, скажем CA, TX и AX за определенный месяц с января по декабрь. Данный входной файл разделен TAB SPACES
и имеет формат city name, the state , and then average rainfall amounts from January through December, and then an annual average for all months
. EG может выглядетьПрограмма AWK, чтобы найти среднее количество осадков в трех штатах
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
То, что я хочу сделать, это «Для того, чтобы получить сумму среднего количества осадков для скажу конкретный месяц февраля, над сказать п лет, а затем найти его среднее значение для стран CA, TX и AX.
я написал ниже сценарий AWK, чтобы сделать то же самое, но это не дает мне ожидаемый результат
/^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);
}
Я призываю программу с помощью команды awk 'FS="\t"'-f awk1.awk rainfall.txt
и не вижу выхода.
Вопрос: Где я проскальзываю? Любые предложения и измененный код будет оценено
Вы еще не точно описали свои данные; содержание столбца 3, по-видимому, не является количеством осадков. Непонятно, как вы относитесь к городу с двумя словами от его имени (Mountain View, Atlantic City). –