Eu faria isso em duas etapas.
Primeiro, interpole os dados ausentes. Aqui está um exemplo com awk
:
awk '
($1 - prev1) > 0.25 { printf "%.2f %.2f\n", prev1 + 0.25, (prev2 + $2)/2 }
{ print; prev1 = $1; prev2 = $2 }
' data_file
Funciona assim:
- Primeiro, se notarmos que um valor na coluna 1 está faltando (o intervalo com o valor anterior é > 0,25), imprimimos a linha ausente calculando uma média para a coluna 2.
- Em seguida, imprimimos a linha atual e definimos os valores anteriores para o próximo ciclo
Por fim, você pode filtrar as linhas indesejadas:
(previous awk command) | awk '$1 ~ /0$/'
Este último comando awk
exibe apenas as linhas cujo primeiro valor termina com 0
.