Skip to content

Instantly share code, notes, and snippets.

@SmartFinn
Created November 7, 2020 09:55
Show Gist options
  • Save SmartFinn/b6cf4fa89765c4785d2953295c2c2d87 to your computer and use it in GitHub Desktop.
Save SmartFinn/b6cf4fa89765c4785d2953295c2c2d87 to your computer and use it in GitHub Desktop.
Скрипт групує відкриті дані по захворюваності на COVID-19 в Україні по віку
#!/usr/bin/awk -f
# Copyright (c) 2020 Sergei Eremenko (https://github.com/SmartFinn)
#
# Permission to use, copy, modify, and/or distribute this software for any
# purpose with or without fee is hereby granted.
#
# THE SOFTWARE IS PROVIDED "AS IS" AND THE AUTHOR DISCLAIMS ALL WARRANTIES WITH
# REGARD TO THIS SOFTWARE INCLUDING ALL IMPLIED WARRANTIES OF MERCHANTABILITY
# AND FITNESS. IN NO EVENT SHALL THE AUTHOR BE LIABLE FOR ANY SPECIAL, DIRECT,
# INDIRECT, OR CONSEQUENTIAL DAMAGES OR ANY DAMAGES WHATSOEVER RESULTING FROM
# LOSS OF USE, DATA OR PROFITS, WHETHER IN AN ACTION OF CONTRACT, NEGLIGENCE OR
# OTHER TORTIOUS ACTION, ARISING OUT OF OR IN CONNECTION WITH THE USE OR
# PERFORMANCE OF THIS SOFTWARE.
#
# Usage:
# wget -qO- 'https://raw.githubusercontent.com/VasiaPiven/covid19_ua/master/covid19_by_area_type_hosp_dynamics.csv' | awk -f group_by_age.awk
BEGIN {
FS = ","
ROWS = "Уточнюється,0-9,10-19,20-29,30-39,40-49,50-59,60-69,70-79,80-89"
}
# skip header
FNR > 1 {
gsub(/"/,X,$0)
DEATHS[$5]+=$(NF-1)
CONFIRMED[$5]+=$(NF-3)
RECOVERED[$5]+=$(NF)
TOTAL_DEATHS+=$(NF-1)
TOTAL_CONFIRMED+=$(NF-3)
TOTAL_RECOVERED+=$(NF)
}
END {
printf "%12s %12s %12s %12s %12s %12s\n", "AGE", "CONFIRMED", "DEATHS", "RECOVERED", "D.RATE", "R.RATE"
rows_num = split(ROWS, row, ",")
for (i=1; i<=rows_num; i++) {
#printf "%12s %12s %12s %12s\n", row[i], CONFIRMED[row[i]], DEATHS[row[i]], RECOVERED[row[i]]
printf "%12s %12s %12s %12s %12.1f%% %12.1f%%\n", row[i], CONFIRMED[row[i]], DEATHS[row[i]], RECOVERED[row[i]], (DEATHS[row[i]] / CONFIRMED[row[i]] * 100), (RECOVERED[row[i]] / CONFIRMED[row[i]] * 100)
}
printf "%12s %12s %12s %12s %12.1f%% %12.1f%%\n", "TOTAL", TOTAL_CONFIRMED, TOTAL_DEATHS, TOTAL_RECOVERED, (TOTAL_DEATHS / TOTAL_CONFIRMED * 100), (TOTAL_RECOVERED / TOTAL_CONFIRMED * 100)
}
@HaithamDev
Copy link

Hello
Can you do this on my own device?
I followed the steps carefully, but it didn't work for me

@SmartFinn
Copy link
Author

@HaithamDev make sure that you have gawk installed on your system instead of mawk or nawk, and than try these 2 commands:

wget -O group_by_age.awk https://gist.github.com/SmartFinn/b6cf4fa89765c4785d2953295c2c2d87/raw/8ca838bbe99977a6c9edf847da2675915245d750/group_by_age.awk
wget -qO- 'https://raw.githubusercontent.com/VasiaPiven/covid19_ua/master/covid19_by_area_type_hosp_dynamics.csv' | gawk -f group_by_age.awk

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment