Сценарий Bash Мне нужно переименовать файлы в Bash, поэтому первая часть имени файла перемещается из последней части имени файла

491
Chris C

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

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, но дата должна быть неизменной.

0
При выполнении любого вида массового переименования / перемещения, подобного этому, обязательно используйте `mv -n` или` mv -i`, чтобы избежать перезаписи файлов, если есть конфликт имен или ошибка именования или ... Gordon Davisson 6 лет назад 0

1 ответ на вопрос

1
Ignacio Vazquez-Abrams

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

fname="2017-11-09-23.00.19-CookingDoughnuts.txt" ext="$" name="$" pref="$" suff="$" newfname="$pref-$suff.$ext" echo "$newfname" 

Похожие вопросы