Итак, вот одно из имен файлов в качестве примера.

2017-11-09-23.00.19-CookingDoughnuts.txt

Переименовать в

CookingDoughnuts-2017-11-09-23.00.19.txt

Мне нужно сделать это в массовом порядке для тысяч файлов, так что это скрипт, часть скрипта, с которой я застрял, это реальный бит переименования. Но полный сценарий может быть предоставлен, если он облегчает публикацию решения.

Я могу сказать, что датированный формат одинаков для каждого файла, поэтому 4-й символ тире всегда является разделителем между первой и второй частью имени файла. Фактическая дата и время варьируются, но текстовая часть имени файла также меняется.

Не требуется переписывать полную дату и метку времени в новом имени файла, поэтому в этом примере в результате будет нормально.

CookingDoughnuts-2017-11-09-00.00.00.txt

Часы, минуты и секунды могут быть все 00, но дата должна быть неизменной.

1 ответ1

1

Подстановка параметров

fname="2017-11-09-23.00.19-CookingDoughnuts.txt"
ext="${fname##*.}"
name="${fname%.*}"
pref="${name#*-*-*-*-}"
suff="${name%-$pref}"
newfname="$pref-$suff.$ext"
echo "$newfname"

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .