Как достать дату из названия файла?
Мне с помощью bash скрипта нужно удалять файлы, если они старше чем две недели. Вот пример названия файла bliznetsy_17-07-2023__03-01.dump. Дата создания файла вшита в название (в данном случае дата создания 17.07.2023). Как мне из названия доставать дату создания файла, так что бы скрипт корректно воспринимал эту дату?
Папка с файлами находится на виртуальной машине Linux.
Пробовал вот так, но падает с ошибкой что дата некорректна
#!/bin/bash
backup_folder="/dev/backupsTest"
# Рассчитываем текущую дату и дату 2 недели назад
current_date=$(date +%s)
two_weeks_ago=$(date -d "2 weeks ago" +%s)
# Перебираем файлы в папке с бэкапами
for file in "$backup_folder"/*; do
# Получаем дату файла из его имени
filename=$(basename "$file")
date_part=$(echo "$filename" | cut -d'_' -f2)
file_date=$(date -d "${date_part//__/ }" +%s)
# Проверяем, старше ли файл двух недель и не является ли датой 5, 15 или 25 числа
if [[ $file_date -lt $two_weeks_ago ]] && ! [[ "${date_part:0:2}" =~ ^(05|15|25)$ ]]; then
# Удаляем файл
rm "$file"
echo "Удален файл: $file"
fi
done