tac
полезен, чтобы изменить порядок строк в файле - (также BSD tail -r
может изменить порядок строк)
tac file | awk 'p { if( p>$1 ) print p-$1; else print p } { p=$1 }'
Если по какой-то причине вы не можете использовать tac
или хотите использовать только awk, вы можете использовать awk
для чтения всего файла в память через массив и END {}
обработать массив в обратном порядке.
awk '{ r[i++]=$0}; END{ for(i=i-1; i>=0; i--)
if( r[i+1] ) if( r[i+1]>r[i] ) print r[i+1]-r[i]; else print r[i+1]
}' file