#! /usr/bin/gawk -f # Reads from standard input a price series, as in {../00-DATA/series}. # Writes to standard ouput a list of pairs "{DATE} {PRICE}", with # a couple of years of zero paddings (up to 2021-12-31). # Caller must specify "{DTFIN}", the last date in the input file. /^20[0-9][0-9]-/ { dt = $1; pm = $16; printf "%s %12.5f\n", dt, pm; } END { padyr("2019",28); padyr("2020",29); padyr("2021",28); } function padyr(yr,nfeb) { padmm((yr "-01"), 31); padmm((yr "-02"), nfeb); padmm((yr "-03"), 31); padmm((yr "-04"), 30); padmm((yr "-05"), 31); padmm((yr "-06"), 30); padmm((yr "-07"), 31); padmm((yr "-08"), 31); padmm((yr "-09"), 30); padmm((yr "-10"), 31); padmm((yr "-11"), 30); padmm((yr "-12"), 31); } function padmm(ym,nd) { for (dd = 1; dd <= nd; dd++) { paddd(sprintf("%s-%02d", ym, dd)); } } function paddd(dt) { if (dt > dtfin) { printf "%s %12.5f\n", dt, 0; } }