С помощью awk
:
awk '{a=$0}1; END{$0=a; if($1==2099&&$2==12&&$3==30){$3=31;print}}' file | column -t
r=$0
установите переменную a
на всю строку. 1
истинное условие, что печатается вся строкаEND{...}
этот блок выполняется, когда обработаны все строки
$1==2099&&$2==12&&$3==30
если последняя строка была 30 декабря 2099 года (13-е число отсутствует)$3=31
установите день в 31
print
и выведите эту дополнительную строку. column -t
для вывода списка в столбик. Результат с вашим входным файлом:
YEAR MONTH DAY RES
2005 1 1 1000
2005 1 2 1001
...
2099 12 29 1002
2099 12 30 1003
2099 12 31 1003