У меня есть группа файлов фотографий, которые называются: ddmmyyyyxxxx.jpg (xxxx - это просто порядковый номер), который я пытаюсь выполнить, но, к сожалению, никаких результатов, это переименование имени файла в yyyy-mm-dd-xxxx.jpg.
Все, что я могу найти в сети, либо заменяет определенный символ, либо меняет регистр букв.
Вы можете сделать это, используя следующий сценарий bash.
#!/bin/bash
for file in $(ls)
do
date=${file:0:2}
month=${file:2:2}
year=${file:4:4}
sequence=${file:8:4}
extension=${file: -3}
mv $file $year\-$month\-$date\-$sequence.$extension
done
echo all files have been renamed
Чтобы использовать этот скрипт, откройте терминал и введите touch script, а затем chmod +x script, чтобы сделать его исполняемым. Затем запустите nano script и скопируйте код выше в терминал. сохраните файл, нажав CTRL + X, а затем введите. Затем переместите скрипт в каталог, содержащий эти изображения, и выполните сценарий, запустив ./script.
Это переименует все файлы в каталоге в скрипте на шаблон, который вы запросили. Однако он также переименует сам сценарий, поэтому, если вы хотите снова запустить скрипт, просто обратите внимание, что оно будет иметь другое имя (в конечном итоге оно будет pt-ri-sc-.ipt. Я рекомендую вам запустить mv pt-ri-sc-.ipt script перед повторным использованием сценария. мудрый, вы можете заменить ls на ls $1 и сохранить сценарий в другом месте, чтобы избежать его переименования случайно. Также этот скрипт будет работать правильно только для файлов с именами в последовательности, заданной в вопросе (ddmmyyyyxxxx.jpg). любые другие файлы, в результате чего файл будет иметь какое-то странное имя.
Для такого рода процедур я использую Krename, у него есть GUI и немного интуитивно понятен ... Под ubuntu вы найдете его в Центре программного обеспечения.