Вам пощастило, тому що номери в іменах файлів містяться лише в порядку touch -t потреб.
Ця команда в терміналі буде працювати. Просто переконайтеся, що ваш робочий каталог встановлено у теці, яку ви бажаєте виконати:
for f in *; do
t=$(echo $f | sed -E 's/([A-z]*-)|([ ,;])|(\..*)//g' | sed -E 's/(.*)(..)/\1.\2/')
touch -t $t "$f"
done
Щоб розбити його:
for f in * встановлює змінну f до імені кожного файлу в каталозі, в свою чергу.
do ставить все до тих пір done в for петлі.
t=$(…) встановлює змінну t до виводу команд у дужках.
Перший sed команда відповідає будь-яким літерам перед a - символ, - ; і space і розширення файлу, а також видаляє їх.
Другий sed Команда вставляє період між значеннями mm і ss, як потрібно дотику.
touch -t $t $f змінює час модифікації та створення файлів на значення t у файлі f.
Протестовано на деяких фіктивних файлах з будь-якою версією sed судна з Mavericks.