次のデータを含むファイルがあります。
21599.94 -13006.00
21599.95 -13008.00
21599.96 -13016.00
21599.97 -13001.00
21599.98 -13015.00
21599.99 -13021.00
25200.00 -13285.00
25200.01 -13295.00
25200.02 -13275.00
25200.03 -13262.00
25200.04 -13278.00
25200.05 -13277.00
21600.00
(列1)からまでのデータが25199.99
ありません。列1のすべての値が欠落していることを認識してから(サンプリングレートは0.01です)、その値をファイルに追加し、列2の対応する値を0に割り当てるコードが必要です。
希望の出力:
21600.00 0
21600.01 0
21600.02 0
21600.03 0
...
....
.....
25199.98 0
25199.99 0
25200.00 -13285.00
ベストアンサー1
私は一般的に明らかな試みがないときにコードの答えを提供しません。しかし、今日は良い日です。ここに私のアドバイスがあります。
awk '
{
this = int($1*100 + .5) # Counter is integer
}
NR == 1 {
current = this # Starting value
}
{
while(current < this) {
printf "%.2f\t0\n", current/100; # Output the missing entry
current++ # Next increment
}
print; # Output current line
current++ # Keep in step with expected
}
' datafile
必要に応じてこの内容を1行に圧縮できますが、この方法は読みやすくなります。