BASH переименование файлов, ubuntu

Jul 05, 2011 08:42

На выходных "гулял" на свадьбе племянника. Перед регистрацией ко мне обратилась родня с просьбой записать на  диск  подборку mp3 файлов, при этом отсортировать файлы случайным образом. Так как времени было мало, а файлов -много, не нашел ничего лучше как быстро слепить скрипт на bash`e. Решил выставить порядковые номера в начале имени файла. Воспользовался примерами из известной книги Advanced Bash-Scripting Guide


#! /bin/bash
#
namescript="sc.sh";
for filename in * # Нет необходимости использовать basename,
# поскольку "*" возвращает имена, не содержащие "/".
do
# себя не переименовываем
if [ "$filename" != "$namescript" ];
then
original=$filename
filename=${filename%.mp3} # Удаление завершающего mp3, так как буду удалять цифры из имени файла
filename=`echo $filename | tr -d 0-9.,` # Удаление ненужного из имени файла
ranf=$[RANDOM % 756] # генерируем число не больше 756 (количество файлов)
summ="-"
nfname=$ranf$summ$filename.mp3 # собираем имя файла = случ.число-файл.mp3
mv "$original" "$nfname" # переименовываем

fi

done

exit 0

Что делает скрипт:
- выполняет цикл, проходя по файлам в каталоге
- проверяет, чтобы имя текущего файла не совпадало с именем скрипта (его нам не надо переименовывать)
- удаляет расширение mp3, цифры, запятую и точку из имени файла (ну не понравились мне цифры в имени файлов)
- генерирует псевдослучайное число из диапазона 0-число файлов в каталоге
- подставляет это число и "-" в начало имени файла, переименовывает файл.

ubuntu, ит, it

Previous post Next post
Up