Вот еще один чистый bash параметр:
for filename in data/*.zip; do
date="${filename: -12:8}"
echo "$date"
done
Этот метод предполагает, что все ваши файлы имеют точно такой же шаблон, как вы описываете: <random_string>DDMMYYYY.zip
. Поскольку дата начинается с 12-го символа сзади, мы можем извлечь ее как подстроку.
${parameter:offset:length}
Расширение подстроки. Расширяется до length
символов параметра, начиная с символа, указанного offset
. Если offset
оценивается как число меньше нуля, значение используется как смещение от конца значения параметра. Отрицательное смещение берется относительно единицы, превышающей максимальный индекс указанного массива. Обратите внимание, что отрицательное смещение должно быть отделено от двоеточия хотя бы одним пробелом, чтобы избежать путаницы с расширением :-
.
source: man bash
примечание: имейте в виду, что формат даты типа DDMMYYYY
не сортируется и, как правило, в один прекрасный день приведет к большому раздражению. Всегда полезно использовать сортируемые форматы, такие как YYYYMMDD