如何正确匹配 awk 中的数据并根据已知的日期/时间文件填充丢失的数据

如何正确匹配 awk 中的数据并根据已知的日期/时间文件填充丢失的数据

我有一个数据研究从 1/1/2002 00:00 运行到 12/31/19 23:00。并非所有位置都具有相同的时间范围,因此为了使数据处理更容易,我有一个脚本来填写缺失的日期 YYYYMMDD 和 HH:MM 时间。我碰巧注意到脚本没有完全正确地传输数据。我正在使用 awk 脚本处理这些数据。这是数据输入示例......

01:00,20020101,0.003
02:00,20020101,0.002
03:00,20020101,0.003
04:00,20020101,0.002
05:00,20020101,0.001

然后将其输入到 temp1.tmp 中,它给出了正确的值......

20020101 0.003
20020101 0.002
20020101 0.003
20020101 0.002
20020101 0.001

但是,当尝试匹配第 1 列以识别 temp1 中缺失的数据并匹配正确的日期/时间行时,temp2.​​tmp 文件会给出...

20020101 0.013
20020101 0.013
20020101 0.013
20020101 0.013
20020101 0.013

这些值甚至远未接近正确。 0.013 数据点甚至在 09:00 测量时才出现。任何建议都会对这个脚本非常有帮助。谢谢

#Print the column information
awk -F ',' '{print $2,$3}'  County081-O3-0124.txt > temp1.tmp
awk  'NR==FNR {missing[$1]=$2} NR>FNR {printf("%s %s\n",$1,missing[$1]);}' temp1.tmp 2002-2019yyyymmdd.txt > temp2.tmp
# Print data column for MODIS data
awk '{print $2}' temp2.tmp > temp3.tmp
# Fill blank data spots with missing data flag of -99
awk '{print NF?$1:blankrow}' blankrow=-999 temp3.tmp > temp4.tmp
        cp 2002-2019yyyymmdd-hhmm.txt  temp5.tmp
        paste temp5.tmp temp4.tmp > temp6.tmp
#    sed -i 's/-28672.0000/-999/g' temp6.tmp
#    sed -i 's/0.0000/-999/g' temp6.tmp
#    sed -i 's/-999000/-999/g' temp6.tmp
    sed -i 's/\t/,/g' temp6.tmp
     mv temp6.tmp test.out

相关内容