2つのデータセットをマージしようとしています。
ファイル1は単一の列です。
JDay list 1 to 366
ファイル2には3つの列があります。
2002 1 9.5938
2002 2 9.5938
2002 3 -28672.0000
2002 5 -28672.0000
JDAY 4が欠落しているファイル2の例に示すように、データが失われる可能性があります。これら2つのファイルを一緒に入れ、正しい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