Awk
solução para sua condição inicial "para cada valor único na coluna 1 o intervalo de valores na coluna 2" (como você alterou consideravelmente sua condição) :
awk 'NR > 1{
if ($1 == num1) intvl += num2 - $2;
else { print intvl; intvl = 0 }
}
{ num1 = $1; num2 = $2 }
END{ print intvl }' file
Exemplo de saída:
22.3612
23.2031
Cobertura da segunda condição "para imprimir um valor anterior e um valor recente da coluna 2 se o valor na coluna 1 mudar" :
awk '!a[$1]++{
if (first != "") { print first, last; first = last = "" }
first = $2
}
{ last = $2 }
END{ print first, last }' file
A saída:
115.944480 93.583322
122.797168 99.594068