LINUX.ORG.RU

скрипт для переименования большого количества файлов


0

0

Есть папка в которой 5000 файлов, некоторые имена начинаются с цифр в некоторых по две цифре в некоторых по 3 но не более, необходимо удалить эти цифры, в случае совпадения имен переносить в другую папку.

P.S. На Бейсике :) знаю как такое написать а вот как скрипт сделать...

Re: скрипт для переименования большого количества файлов

Покажи вариант на бейсике, сделаем тебе на баше :)

anonymous ()

Re: скрипт для переименования большого количества файлов

Бейсик есть, только зачем он, если есть баш? А для переименования прочитайте man rename Сортировка по размеру ls -S Разница файлов - diff etc...

Eddy_Em ☆☆☆☆☆ ()

Re: скрипт для переименования большого количества файлов

файлы судя по всему - коллекция порева :)

imp ★★ ()

Re: скрипт для переименования большого количества файлов

Я фигею от здешних комментаторов!

Можно запустить что-то вроде, заменив majic-directory на директорию для дублей:

for i in [0-9]*; do j=`echo $i | sed -e "s/^[0-9]\{1,3\}//"`; echo $j; if [ -e $j ]; then mv $i majic-directory/; else mv $i $j; fi; done

Лучше почитайте, что там написано перед запуском, а то если что не так, администрация ответственности не несет :)

July ()

Re: скрипт для переименования большого количества файлов

есть замечательная утилитка rename

grishkin ()

Re: скрипт для переименования большого количества файлов

Отлаживай скрипт по шагам. Начальное состояние: файлы с именами ls -l > FILES0. Потом подбираешь regexp чтобы из этих названий сделать правильные, sed -e "s/^[0-9]\{1,3\}//"`FILES0 >FILES1. Смотришь, что получилось, не получилось ли строк-дублей, например, сравниваешь wc -l FILES1 и cat FILES1|uniq|wc -l. Переименовываешь файлы с названиями из FILES0 в файлы с названиями из FILES1. переименовывешь с проверкой, нет ли уже таких. До того, как что-то запускать, ставишь везде echo или mv -i чтобы было видно как отрабатывает.

А вообще по теме:
1. Могут быть разные названия, но одинаковые id3 meta теги.
2. мета-теги могут быть не заполнены, но могут быть файлы-дубли с разным названием. То есть проверять надо что-то вроде md5 от файлов.
3. Могут быть копии одного трека с разным качеством, в разных форматах. То есть, по идее, должен быть "отпечаток", footprint одного трека. Есть http://www.music-map.com/ http://www.gnod.net/ , они пытаются подобрать "похожие по стилю". Кто-то ещё пытался составить "инвариант" одного трека в разных обработках/и т.п., типа "звуковой отпечаток".

По идее, всё что ты хочешь, должно делаться не на уровне файловой системы, а из плейера вроде амарока, с единой базой всех треков, который может группировать по стилям/жанрам/дубликаты, и из него уже удалять.

А ещё можно винчестер купить гиг на 500 и забить на переименования файлов :)

anonymous ()
Вы не можете добавлять комментарии в эту тему. Тема перемещена в архив.