Awk é bem adequado para isso:
awk 'NR>1{print $1-last} {last=$1}' timestamps
Acima, para cada linha após a primeira ( NR>1
), imprimimos o valor no valor atual, $1
, menos o valor na linha anterior, last
. Em seguida, atualizamos o valor de last
.
Exemplo
$ awk 'NR>1{print $1-last} {last=$1}' timestamps
1
153401
1
28995
22201
23599
2
198800
2
348899
3
1587897
2
63995
2
1
1
1
530497
3
1
1
2094
1
132699
1
22698
1
Cálculo mais complexo
O código abaixo começa com o número na linha atual, adiciona o dobro do número na linha anterior e subtrai três vezes o número na linha das cinco linhas anteriores:
awk '{a[NR]=$1} NR>5{print a[NR]+2*a[NR-1]-3*a[NR-5]}' timestamps