com awk :
awk '{a=$0}1; END{$0=a; if($1==2099&&$2==12&&$3==30){$3=31;print}}' file | column -t
-
r=$0define a variávelapara toda a linha. -
1uma condição verdadeira em que todas as linhas são impressas -
END{...}esse bloco é executado quando todas as linhas são processadas-
$1==2099&&$2==12&&$3==30se a última linha foi 30 de dezembro de 2099 (o 13 está faltando) -
$3=31definiu o dia para31 -
printe imprima essa linha adicional.
-
-
column -té colocar em coluna a lista.
O resultado com o seu arquivo de entrada:
YEAR MONTH DAY RES
2005 1 1 1000
2005 1 2 1001
...
2099 12 29 1002
2099 12 30 1003
2099 12 31 1003