Eu usaria perl
aqui para fazer tudo:
perl -MTime::Piece -i -lne '
print unless $. == 1; # remove first line
if (eof) {
($t, $n) = /(.*) (.*)/;
$t = Time::Piece->strptime($t, "%y-%m-%d %T") + 60*15;
$n += 1e8; $n = 11e8 if $n > 15e8;
print $t->strftime("%y-%m-%d %T $n")
}' your-file
Time::Piece
foi adicionado em 5.10. Para versões mais antigas, você sempre pode usar POSIX::mktime
:
perl -MPOSIX -i -lne '
print unless $. == 1; # remove first line
if (eof) {
($y, $mo, $d, $h, $mi, $s , $n) = /(..)-(..)-(..) (..):(..):(..) (.*)/;
$t = mktime($s, $mi, $h, $d, $mo-1, $y+100) + 60*15;
$n += 1e8; $n = 11e8 if $n > 15e8;
print strftime("%y-%m-%d %T $n", localtime $t)
}'