合并两个数据集的数据

合并两个数据集的数据

我正在尝试合并两个数据集......

文件 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

相关内容