我有一个包含以下数据的文件:
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
如果需要,您可以将其压缩为一行,但这样更易读。