У меня есть список задач todo.txt, который я хотел бы отфильтровать, чтобы показать все задачи, запланированные на даты в будущем или на сегодняшний день, т. Е. - не показывать запланированные даты в прошлом и показывать только те задачи, на которые запланирована дата.
Строки и порядок файлов иногда изменяются и включают «пороговую (думаю, отложить / отложить задачу до ...) дату в формате: t: date +% Y-% m-% d, которая говорит« don »не запускать эту задачу до этой даты '.
Файл данных:
50 (A) Testing due date due:2018-09-22 t:2018-09-25
04 (B) Buy Socks, Underwear t:2018-09-22
05 (B) Buy Vaporizer t:2018-09-23 due:2018-09-22
16 (C) Watch Thor Ragnarock
12 (B) Pay Electric Bill due:2018-09-20 t:2018-09-25
x 2018-09-21 pri:B Buy Prebiotics +health @web due:2018-09-21
До сих пор я придумал следующее:
cat t | awk -F: -v date="$(date +%Y-%m-%d)" '/due:|t:/ $2 >= date || $3 >= date { print $0}'|
nl
Проблема в том, чтосравнение даты работает с полем «due:», как обычно перед полем «t:».Кроме того, выводятся записи старше сегодняшнего дня.
Вывод:
1 50 (A) Testing due date due:2018-09-22 t:2018-09-25
2 05 (B) Buy Vaporizer t:2018-09-23 due:2018-09-22
3 12 (B) Pay Electric Bill due:2018-09-20 t:2018-09-25
Вопросы:
Как правильно сопоставить дату с "t: "значение после разделителя«: », если присутствует« t: », и значение« due: », если« t: »отсутствует?
Дата больше, чем(«>»), Кажется, работает, но равно не работает («> =«)