У меня есть файл CSV, который ежедневно обновляется кроном и выглядит примерно так:
Дата, Значение
01/11/2019,123
02/11/2019,456
03/11/2019,789
...
31/01/2020,123
01/02/2020,456
02/02/2020,789
03/02/2020,123
04/02/2020,456
05/02/2020,789
Я хотел бы, чтобы файл был обновлен сценарием оболочки так, чтобы он всегда имел последнюю запись в течение каждого месяца, например.
Дата, Значение
30/11/19,123
31/12/19,456
31/01/20,789
05/02/20,789
Обратите внимание, что последняя заполненная строка в течение каждого месяца не может быть в прошлый день того месяца
Не уверенный, как приблизиться, это так действительно ценило бы некоторую справку!
Так как Ваши даты уже заказаны, необходимо смочь распечатать предыдущую запись каждый раз изменения месяца (и еще раз в самом конце).
Напр. данный
$ cat file.csv
Date,Value
01/11/2019,123
02/11/2019,456
03/11/2019,789
31/01/2020,123
01/02/2020,456
02/02/2020,789
03/02/2020,123
04/02/2020,456
05/02/2020,789
затем
$ awk -F, '{split($1,a,"/")} a[2] != lastm {print last; lastm = a[2]} {last = $0} END {print last}' file.csv
Date,Value
03/11/2019,789
31/01/2020,123
05/02/2020,789
Вы получаете строку заголовка бесплатно, так как первое значение месяца всегда отличается от пустой строки.