#!/bin/bash # Takes precip record with blank days removed and adds blank days back # assumes that first three are day, month, year followed by one record but # # To accomodate more lines edit the varaible $linelen # linelen=4 # three date values and one data value linelen=`head -1 <$1 | dm N` # set up an array of defaut data values let cntdefval=linelen-3 for index in $(seq $cntdefval) do defaultval[index]=0.0 done # get entire file in variable array lineval=( `cat $1` ) # set up initial nextval array values np=0 for singval in ${lineval[@]} do let np=np+1 if [ $np -le $linelen ] then nextval[np]=$singval # echo "nextval($np) = ${nextval[np]}" fi done # ouput first line echo "${nextval[@]}" nval=0 nline=0 for singval in ${lineval[@]} do let nval=nval+1 if [ $nval -gt $linelen ] then let nline=nline+1 lastval[nline]=${nextval[nline]} nextval[nline]=$singval if [ $nline -eq $linelen ] then # echo "lastval(1-$linelen) = ${lastval[@]}" # echo "nextval(1-$linelen) = ${nextval[@]}" inloop=0 while [ $inloop -eq 0 ] do chkval=( `nextday ${lastval[1]} ${lastval[2]} ${lastval[3]}` ) # echo "chkval(0-2) = ${chkval[0]} ${chkval[1]} ${chkval[2]}" if [ ${chkval[0]} -eq ${nextval[1]} ] then if [ ${chkval[1]} -eq ${nextval[2]} ] then if [ ${chkval[2]} -eq ${nextval[3]} ] then echo "${nextval[@]}" inloop=1 else echo "${chkval[0]} ${chkval[1]} ${chkval[2]} ${defaultval[@]}" fi else echo "${chkval[0]} ${chkval[1]} ${chkval[2]} ${defaultval[@]}" fi else echo "${chkval[0]} ${chkval[1]} ${chkval[2]} ${defaultval[@]}" fi lastval[1]=${chkval[0]} lastval[2]=${chkval[1]} lastval[3]=${chkval[2]} done nline=0 fi fi done