В awk
$ 1, $ 2, ... представляют разные столбцы, а не разные строки.
Попробуйте использовать дополнительную переменную p
для отслеживания предыдущего значения с целью обращения кумулятивных значений
awk '
# Save Original Values
{ pp=$1 }
# Reverse cumulative values
$1 != -999 && p != "" && p != -999 && $1 >= p { $1 = $1 - p }
# Print value, save for next line
{ print $1 ; p=pp}
' ifile.txt > ofile.txt
Одна строка:
awk '{ pp=$1 } $1 != -999 && p != "" && p != -999 && $1 >= p { $1 = $1 - p } { print $1 ; p=pp}' ifile.txt > ofile.txt