![合并两个数据集的数据](https://linux22.com/image/180329/%E5%90%88%E5%B9%B6%E4%B8%A4%E4%B8%AA%E6%95%B0%E6%8D%AE%E9%9B%86%E7%9A%84%E6%95%B0%E6%8D%AE.png)
我正在尝试合并两个数据集......
文件 1 是单列
JDay list 1 to 366
文件 2 有 3 列
2002 1 9.5938
2002 2 9.5938
2002 3 -28672.0000
2002 5 -28672.0000
有时会丢失数据,如文件 2 示例中所示,其中缺少 JDAY 4。我希望将这两个文件放在一起,匹配正确的 JDAY 标志并打印数据。另外,鉴于缺失数据标志为 -9999,我还希望有任何缺失的 JDAYS,以便了解缺失了哪些天。
新文件应该如下所示......
2002 1 9.5938
2002 2 9.5938
2002 3 -28672.0000
2002 4 -9999
2002 5 -28672.0000
谢谢
答案1
这应该有效
创建一个文件merge.awk
,其中包含以下代码
BEGIN{
getline<ARGV[1]; l=$3; r=$5; ARGV[1]=""
}
$1 != year { if (x) while(x <= r) print year, x++, -9999
year=$1
x=l
}
$2 < l{
print
next
}
{
while($2 > x) print year, x++, -9999
print
++x
next
}
$2 > r{
while(x <= r) print year, x++, -9999
print
next
}
END{
while(x <= r) print year, x++, -9999
}
其次是
awk -f merge.awk file1 file2