Подскажите как написать regex на bash, который выбирал бы все файлы по шаблону, исключая сегодняшние (те, которые были созданы в тот же день, когда мы будем запускать bash). Этот парсер будет использьзоваться как один из параметров для другой программы, поэтому тут есть один момент: парсер должен быть однострочный и нужно быть осторожней с пробелами, чтобы часть парсера не интерпретировалась как следующий параметр программы.
log_2019-09-06_10_stdout.log
log_2019-09-17_19_stdout.csv
log_2019-09-18_22_stderr.log
log_2019-09-18_22_stdout.csv
Парсер, запущенный сегодня, т.е. 18.09, должен показать только последние два файла.
Вот этот код date --iso-8601 | cut -d "-" -f 3 покажет сегодняшнее число, а это выберет все сегодняшние файлы log_2019-09-`date --iso-8601 | cut -d "-" -f 3`*. Мне нужно наоборот - все файлы кроме сегодняшних.
Тут есть еще один момент - regex проходится по шаблону и сравнивает каждый символ. Как только я подставляю восклицательный знак, чтобы игнорировать 18, первый символ - единица - перекрывает все числа, начинающиеся с единицы, т.е. 17 (в нашем примере) он мне тоже не показывает. Получается, надо использовать логическое И и сравнивать поотдельности оба символа...
В общем, я тут задумался, что пошел куда-то не туда и подумал, что тут наверняка есть ребята, которые сильнее меня в bash и подскажут более короткий и правильный способ.
Идеально было бы получить один regex, который был бы достаточно интеллигентным, чтобы понимать еще и месяца (запущенный первого числа должен смотреть предыдущий месяц) и года.
Благодарю за любую помощь
