1

В общем, есть у меня замечательный плеер - Transcend 870, который при низкой цене не уступает маститым представителям этого рынка. и был бы он вообще замечателен,если бы не один баг,который разрабы почему-то не фиксят в новых прошивках,хотя уже пора бы давно.
Некоторые файлы на кириллице он не читает,а само их название превращается в крякозябры. И, чтоб они читались,надо их переименовать по-латински. Одна только проблема - узнать какие именно песни он попортил.
Раньше много думал,как вычислить какие конкретно файлы он превращает в нечитаемые,придумал способ,благодаря которому могу наслаждатся моей музыкальной библиотекой,однако на то,чтоб ее всю(2500+ песен) закинуть на плеер,требуется часов 5 потения ac
Недавно,опытным путем установил,что он "не любит" файлы с названием на кириллице,которое,не считая расширения, длинною 5 или 7 букв.
Теперь,к сути) Кто может посоветовать программу для массового поиска и переименования необходимых мне файлов в конкретной папке? или скриптик хотя бы.
т.е.нужно чтоб он искал файлы типа
XXXXX.YYY и XXXXXXX.YYY
и превращал в XXXXX..YYY и XXXXXXX..YYY соответственно

2

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

3 (28.10.2011 02:20:16 отредактировано shumomer)

rename 's/^(.{5})\.mp3$/$1\.\.mp3/' *.mp3

добавит точку ко всем mp3 с 5и буквенным именем в текущей директории

4

shumomer, не работает(

5 (29.10.2011 02:53:48 отредактировано shumomer)

AnKar пишет:

shumomer, не работает(

Странно. Специально проверил - у меня работало.
Покажите ls -l той папки, в которой пытаетесь переименовывать.

ЗЫ А как "не работает"? И да - система/дистр-то у вас какие (в некоторых эту команду, зачем-то, обрезанную ставят)?

6

Ununtu 10.04
в папке специально переименовал один файл на пятибуквенный,чтоб проверить работоспособность
делаю cd '/home/ankar/music/
далее вашу команду
ls -l:

ankar@ankar-laptop:~$ ls -l '/home/ankar/music' 
итого 63440
-rwxr-xr-x 1 ankar ankar  4510077 2011-10-28 00:51 03 - Канцлер Ги - Cezare Borja.mp3
-rwxr-xr-x 1 ankar ankar  4432760 2011-10-28 00:51 03 - Канцлер Ги - Песенка Люцифера.mp3
-rwxr-xr-x 1 ankar ankar  5915474 2011-09-17 15:15 04 - Канцлер Ги - Доброе утро, катары!.mp3
-rwxr-xr-x 1 ankar ankar  6957229 2011-10-28 00:49 10 - Канцлер Ги - Ведьма-II.mp3
-rwxr-xr-x 1 ankar ankar  4864304 2011-10-28 00:49 14 - Канцлер Ги - Каину Амберскому.mp3
-rwxr-xr-x 1 ankar ankar 10767818 2011-09-26 23:36 olvi_-_prosnis.mp3
-rwxr-xr-x 1 ankar ankar 15713316 2011-09-26 23:36 olvi_-_svoboda.mp3
-rwxr-xr-x 1 ankar ankar 11780452 2011-09-26 23:37 генер.mp3

7

Мда.. Опять беда с юникодом (работает только с латиницей). Да что-ж такое-то. Ведь в какой-то из версий работало-же.... Опять поломали, чтоб им.

8 (29.10.2011 23:20:24 отредактировано shumomer)

Ок. Тогда так извратимся:

ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh

Или чуток попроще:

ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.*\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh

9

Отлично! первый вариант работает.

10

Если еще не надоел, не мог бы ты написать скрипт чтоб то же самое делало для папок и для вложенных под-папок(т.к. плеер русскоязычные папки 5\7 символов тоже непризнаёт, а 250+ исполнителей, + альбомы у каждого менять напряжно)?

11

Переименовать пятибуквенные mp3 во всех папках начиная от текущей:

find ./ -type f | grep -E /.\{5\}\.mp3$ | sed -e 's/^\(.*\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh

Переименовать все пятибуквенные подпапки (с этим - очень аккуратно, запустите не там - запорете систему и/или данные, на что прав хватит!)

find ./ -type d | grep -E /.\{5\}$ | sed -e 's/^\(.*\)$/mv "&" "\1\."/' | sh

12 (30.10.2011 02:46:43 отредактировано AnKar)

Смотри,то есть
у меня есть папка "music" в которой энное количество мп3-файлов,и небольшое количество ogg и wma файлов не разсортированных по папкам(мне так удобно на компе)
я перехожу в терминале к этой папке, делаю

ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh

потом

ls *.mp3 | grep -E ^.\{7\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh

для остальных фалов то же самое, только mp3 меняю на ogg и wma(будет работать с этим форматом?)
далее при помощи любого аудиоплеера делаю синхронизацию с мп3-плеером, при синхронизации он сортирует по типу mp3-pleer/%artistname%/%albomname%/%songname.mp3%(не знаю еще,какой аудиоплеер буду для этого использовать, не тестил, планирую использовать exaile. wmp сортирует именно так,что для меня очень удобно, но он стабильно на каждом 15м файле кидает ошибку и не записывает этот файл. а может быть найду что-то другое из ПО для сортировки музыкальных файлов, т.е. не буду синхронизирует а просто в любую папку отсортирую по вышеуказанному алгоритму, а потом кину на плеер. если что-то для этого посоветуешь - будешь вообще волшебником)))
потом перехожу к основной уже отсортированной папке,делаю

find ./ -type d | grep -E /.\{5\}$ | sed -e 's/^\(.*\)$/mv "&" "\1\."/' | sh

и

find ./ -type d | grep -E /.\{7\}$ | sed -e 's/^\(.*\)$/mv "&" "\1\."/' | sh

и ко всем папкам 5 и 7-буквенным прибавляется точка
PROFIT!
я правильно описал алгоритм?
завтра буду тестить
и,да,я - упоротый убунтолог

13

AnKar пишет:

потом

ls *.mp3 | grep -E ^.\{7\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh

Вторую пятерку заменить забыл

ls *.mp3 | grep -E ^.\{7\}\.mp3$ | sed -e 's/^\(.\{7\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh
AnKar пишет:

для остальных фалов то же самое, только mp3 меняю на ogg и wma(будет работать с этим форматом?)

Будет

Дальше - все правильно.
Чем сортировать музыку - не знаю - у меня просто по стилям (точнее по настроениям) раскидана, большими пачками. Можно, конечно, и тут скрипт написать ab но смысла нет - знаю что есть пачка готовых инструментов, просто надобности ни когда небыло, т.ч. посоветовать не могу.

14

Хэх...нашел отличную unix-программу для для сортировки любых типов файлов, FreeSorter. Если бы не маялся этим,и не наткнулся бы на такую отличную вещь. только не вкурю,что за юмор у автора...из-за следующих строчек в конфиг-файле, в разделе мп3 bon jovi(чисто случайно его скачал для теста - на ноуте вообще нет музыки) кидается не в  /%artistname%/%albomname%/%songname.mp3% а в FAVORITES/%artistname%/%albomname%/%songname.mp3%

{
%mp3_kw = (


'Linkin'        => 'Pop_West/Linkin_Park',
'Pink'          => 'Pop_West/Pink',
#
'Tiesto'        => 'Club/Tiesto',
'DJ'            => 'Club/DJ',
#
'Nightwish'     => 'Metal/Nightwish',
#
'Moby'          => 'Electronic/Moby',
#
'Red Hot'       => 'Rock_West/Red_Hot_Chili_Peppers',
#
'Звери'         => 'Recycle_Bin/',
'W w W . B I A 2 R A P . C o M' => 'Recycle_Bin/',
#
'к/ф'           => 'Favourites/Soundtracks',
'к.ф'           => 'Favourites/Soundtracks',
'к;ф'           => 'Favourites/Soundtracks',
'к; ф'          => 'Favourites/Soundtracks',
'т/п'           => 'Favourites/Soundtracks',
'т;п'           => 'Favourites/Soundtracks',
'т; п'          => 'Favourites/Soundtracks',
'OST'           => 'Favourites/Soundtracks',
'soundtrack'    => 'Favourites/Soundtracks',
#
'песни'         => 'Favourites/USSR',
'ссср'          => 'Favourites/USSR',
#
'doors'         => 'Favourites/The_Doors',
'Marley'        => 'Favourites/Bob_Marley',
'Wailers'       => 'Favourites/Bob_Marley',
'Elvis'         => 'Favourites/Elvis_Presley',
'Presley'       => 'Favourites/Elvis_Presley',
'Presly'        => 'Favourites/Elvis_Presley',
'Prestley'      => 'Favourites/Elvis_Presley',
'Armstrong'     => 'Favourites/Louis_Armstrong',
'Jovi'          => 'Favourites/Bon_Jovi',
#
'Instrumental'  => 'Favourites/Instrumental',
'osoboe'        => 'Favourites/osoboe',
);
}{
%mp3_kw = (


'Linkin'        => 'Pop_West/Linkin_Park',
'Pink'          => 'Pop_West/Pink',
#
'Tiesto'        => 'Club/Tiesto',
'DJ'            => 'Club/DJ',
#
'Nightwish'     => 'Metal/Nightwish',
#
'Moby'          => 'Electronic/Moby',
#
'Red Hot'       => 'Rock_West/Red_Hot_Chili_Peppers',
#
'Звери'         => 'Recycle_Bin/',
'W w W . B I A 2 R A P . C o M' => 'Recycle_Bin/',
#
'к/ф'           => 'Favourites/Soundtracks',
'к.ф'           => 'Favourites/Soundtracks',
'к;ф'           => 'Favourites/Soundtracks',
'к; ф'          => 'Favourites/Soundtracks',
'т/п'           => 'Favourites/Soundtracks',
'т;п'           => 'Favourites/Soundtracks',
'т; п'          => 'Favourites/Soundtracks',
'OST'           => 'Favourites/Soundtracks',
'soundtrack'    => 'Favourites/Soundtracks',
#
'песни'         => 'Favourites/USSR',
'ссср'          => 'Favourites/USSR',
#
'doors'         => 'Favourites/The_Doors',
'Marley'        => 'Favourites/Bob_Marley',
'Wailers'       => 'Favourites/Bob_Marley',
'Elvis'         => 'Favourites/Elvis_Presley',
'Presley'       => 'Favourites/Elvis_Presley',
'Presly'        => 'Favourites/Elvis_Presley',
'Prestley'      => 'Favourites/Elvis_Presley',
'Armstrong'     => 'Favourites/Louis_Armstrong',
'Jovi'          => 'Favourites/Bon_Jovi',
#
'Instrumental'  => 'Favourites/Instrumental',
'osoboe'        => 'Favourites/osoboe',
);
}

а если убрать ее вовсе, он кидается по типу /%albomname%/%songname.mp3%
лол просто)

15

Ох и намаялся я с этим плеером
Уже на финальной стадии, теги все поправленны красиво, все исполнители по алфавиту раскиданны,все отлично,осталось только папки подправить
Только скрипт ваш не работает, в нем ошибка, он пытается заменить %wrongname% на %wrongname.%/%wrongname%
Слава Роду, что он по какой-то причине не сработал, а то моя тщательно отсортированная коллекция бы полетела в тартарары, и пришлось бы бекапится на пару пунктов алгоритма(а он уже заметно возрос)), так как я, как дурак, забыл сделать копию, и пытался изменить прям оригинал
Терминал выдает следующее:

ankar@ankar-laptop:/media/MicroSdHc/Music$ find ./ -type d | grep -E /.\{5\}$ | sed -e 's/^\(.*\)$/mv "&" "\1\."/' | sh
mv: невозможно перенести «./AC DC» в свой собственный подкаталог, «./AC DC./AC DC»
mv: невозможно перенести «./Bon Jovi/Crush» в свой собственный подкаталог, «./Bon Jovi/Crush./Crush»
mv: невозможно перенести «./Butterfly Temple/Велес» в свой собственный подкаталог, «./Butterfly Temple/Велес./Велес»
mv: невозможно перенести «./Catharsis/Имаго» в свой собственный подкаталог, «./Catharsis/Имаго./Имаго»
mv: невозможно перенести «./Die Apokalyptischen Reiters/Licht» в свой собственный подкаталог, «./Die Apokalyptischen Reiters/Licht./Licht»
mv: невозможно перенести «./Edguy» в свой собственный подкаталог, «./Edguy./Edguy»
mv: невозможно перенести «./Equilibrium/Sagas» в свой собственный подкаталог, «./Equilibrium/Sagas./Sagas»
mv: невозможно перенести «./А.Непомнящий/Полюс» в свой собственный подкаталог, «./А.Непомнящий/Полюс./Полюс»
mv: невозможно перенести «./Korpiklaani/Vodka» в свой собственный подкаталог, «./Korpiklaani/Vodka./Vodka»
mv: невозможно перенести «./Lordi» в свой собственный подкаталог, «./Lordi./Lordi»
mv: невозможно перенести «./Lumen» в свой собственный подкаталог, «./Lumen./Lumen»
mv: невозможно перенести «./Черный обелиск/Стена» в свой собственный подкаталог, «./Черный обелиск/Стена./Стена»
mv: невозможно перенести «./Queen» в свой собственный подкаталог, «./Queen./Queen»
mv: невозможно перенести «./Ska-P» в свой собственный подкаталог, «./Ska-P./Ska-P»
mv: невозможно перенести «./Sting» в свой собственный подкаталог, «./Sting./Sting»
mv: невозможно перенести «./Three Days Grace/One X» в свой собственный подкаталог, «./Three Days Grace/One X./One X»
mv: невозможно перенести «./Алиса» в свой собственный подкаталог, «./Алиса./Алиса»
mv: невозможно перенести «./Алиса/Изгой» в свой собственный подкаталог, «./Алиса/Изгой./Изгой»
mv: невозможно перенести «./Алиса/Шабаш» в свой собственный подкаталог, «./Алиса/Шабаш./Шабаш»
mv: невозможно перенести «./Би-2/Album» в свой собственный подкаталог, «./Би-2/Album./Album»
mv: невозможно перенести «./Браво» в свой собственный подкаталог, «./Браво./Браво»
mv: невозможно перенести «./Гр.Рондо/Рондо» в свой собственный подкаталог, «./Гр.Рондо/Рондо./Рондо»
mv: невозможно перенести «./ДДТ/Album» в свой собственный подкаталог, «./ДДТ/Album./Album»
mv: невозможно перенести «./Живые» в свой собственный подкаталог, «./Живые./Живые»
mv: невозможно перенести «./Крематорий/Зомби» в свой собственный подкаталог, «./Крематорий/Зомби./Зомби»
mv: невозможно перенести «./Ольви» в свой собственный подкаталог, «./Ольви./Ольви»
mv: невозможно перенести «./Пилот» в свой собственный подкаталог, «./Пилот./Пилот»
mv: невозможно перенести «./Рок Фронт/Бой 2» в свой собственный подкаталог, «./Рок Фронт/Бой 2./Бой 2»
mv: невозможно перенести «./Сплин» в свой собственный подкаталог, «./Сплин./Сплин»
mv: невозможно перенести «./Шмели» в свой собственный подкаталог, «./Шмели./Шмели»
mv: невозможно перенести «./Юрий Лоза/Тоска» в свой собственный подкаталог, «./Юрий Лоза/Тоска./Тоска»
mv: невозможно перенести «./F.P.G» в свой собственный подкаталог, «./F.P.G./F.P.G»
mv: невозможно перенести «./F.P.G/Сингл» в свой собственный подкаталог, «./F.P.G/Сингл./Сингл»
mv: невозможно перенести «./F.P.G/Сплит» в свой собственный подкаталог, «./F.P.G/Сплит./Сплит»

сегодня часов до двух ночи еще онлайн буду точно,жду ответа

16

Я наконец-то сделал всё) Просто подумал - твой скрипт не работает,зато он отлично показывает битые папки. просто вручную их переименовал. При чём,какое странное колдунство:
если переименовывать из XXXXX в XXXXX. то пишет что нельзя,такая папка уже есть(хотя ее точно нет). а если XXXXX в XXXXX_ а потом в ХХХХХ. то отлично работает))
спасибо!

17 (01.11.2011 22:47:33 отредактировано shumomer)

Самое в этом странное, это то, что я тестил команду. И у меня прекрасно сработала и сделала то, что задумано...

Прямо сейчас - скопировал с сообщения команду, в тестовой папке запустил. Все ОК, все переименовалось как надо. Ничего не понимаю...

То, что у вас уже все хорошо - это хорошо ab А мне, честно говоря, хотелось-бы понять - почему у вас команда отрабатывала не как надо?
Что-бы я не делал - не могу добиться такой ошибки (хотя попутно нашел одну недоработку, но она не опасна и к ошибке не приводит).

Хоть убей не понимаю, откуда у вас дополнительно имя каталога в конце берется...

Если не трудно - запустите такую команду, в уже обработанном каталоге (да в принципе в любом, где точно есть папки из 6 букв):

find ./ -type d | grep -E /.\{6\}$ | sed -e 's/^\(.*\)$/mv "&" "\1\."/'

Она ничего не делает, просто выведет команды которые отдавались-бы на исполнение. Вот то, что она покажет и хотелось-бы увидеть.

ЗЫ Или может кто подскажет - чего я тут не понимаю?

18

mv "./6bukov" "./6bukov."

offtop:
на плеере,кстати, родных 8 гб, поддерживает  карты памяти до 16 гб. У меня такая, на ней 11 гиг - тормозит нещадно.
Есть два режима просмотра файлов - через меню "проигрывается", котором файлы показываются сплошняком,без розбивки по папкам,но в правильном порядке и через проводник. Если смотреть через проигрывается - переключает песни(у меня рендомное) за 5-6 секунд, выходит в просмотр файлов за 10-12 секунд. Если смотреть через проводник переходит от папки к папке за 2-3 минуты. В поле зрения проводника - 10 папок, когда их пролистаешь, подгружает дальнейшие папки 2-3 минуты. Включает песню 5-6 минут(!!).
не знаю - зависит ли от плеера,или от корявой прошивки(последняя стоит), но никому его не советую. Во всех плеерах transcend такая беда, но когда заняты 8 гиг, почти не заметно. Возростает в геометрической прогрессии, т.к. когда у меня было 8 гиг, переключало в 10 раз быстрее. Боюсь себе представить что будет, когда будут забиты все 16 гиг.

19 (28.06.2012 00:40:24 отредактировано AnKar)

shumomer пишет:

Ок. Тогда так извратимся:

ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh

Кто подскажет как этот скрипт преобразовать для рекурсивного переименования по папкам? Как я понял,просто нужно вначале добавить что-то вроде find ./ ,но оно пишет

find: `ls': Нет такого файла или каталога
find: `*.mp3': Нет такого файла или каталога

не могу прогуглить ман,выдает bash-скрипты,а это явно не оно. помогите,для знающего человека это пол минуты

20

sh и grep тут не нужны...
и тему недавно поднимали: Как удалить пробел в начале имени файла

95% процентов проблем находятся между клавиатурой и стулом.

21 (28.06.2012 06:01:49 отредактировано yars)

AnKar пишет:

вначале добавить что-то вроде find ./

find . -type d | xargs "ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh"

?

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

22

yars пишет:
AnKar пишет:

вначале добавить что-то вроде find ./

find . -type d | xargs "ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh"

?

выдает:

ankar@ankar-laptop:~/Flёur$ find . -type d | xargs "ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh"
[1] 6508
bash:  1..mp3/' | sh: Нет такого файла или каталога
ankar@ankar-laptop:~/Flёur$ xargs: ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv : Нет такого файла или каталога

[1]+  Выход из 127     find . -type d | xargs "ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "

Точно "find .",а не "find ./"? В любом случае,обе не работают)

23 (28.06.2012 12:59:15 отредактировано yars)

AnKar пишет:

выдает:

ankar@ankar-laptop:~/Flёur$ find . -type d | xargs "ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh"
[1] 6508
bash:  1..mp3/' | sh: Нет такого файла или каталога
ankar@ankar-laptop:~/Flёur$ xargs: ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv : Нет такого файла или каталога

[1]+  Выход из 127     find . -type d | xargs "ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "

Точно "find .",а не "find ./"? В любом случае,обе не работают)

Ой. Похоже, забыл про кавычки:

find . -type d | xargs `"ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh"`

UPD: А если просто:

ls -R *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh

?
UPD2.0: Ступил, "-type d" здесь неприменимо.
UPD3.0: Блин, опять ступил. "ls -R" тоже,  нужно же рекурсивно перемещаться по древу каталогов...

Истинный hotplug - это обычная электрическая розетка: воткнул - работает, и никаких драйверов.
Arch Linux/Xfce/Xiaomi Mi Notebook Pro 15.6 | Slackware64-current/Xfce/Lenovo G580

24

yars пишет:
AnKar пишет:

выдает:

ankar@ankar-laptop:~/Flёur$ find . -type d | xargs "ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh"
[1] 6508
bash:  1..mp3/' | sh: Нет такого файла или каталога
ankar@ankar-laptop:~/Flёur$ xargs: ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv : Нет такого файла или каталога

[1]+  Выход из 127     find . -type d | xargs "ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "

Точно "find .",а не "find ./"? В любом случае,обе не работают)

Ой. Похоже, забыл про кавычки:

find . -type d | xargs `"ls *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh"`

UPD: А если просто:

ls -R *.mp3 | grep -E ^.\{5\}\.mp3$ | sed -e 's/^\(.\{5\}\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh

?
UPD2.0: Ступил, "-type d" здесь неприменимо.
UPD3.0: Блин, опять ступил. "ls -R" тоже,  нужно же рекурсивно перемещаться по древу каталогов...

на всякий случай попробовал - не пашет(
блин,за сегодняф нужно с этим разовратся. а то вручную прийдется,а это часа 3-4 в никуда

25

проблему решил:

 find . -type f -iname "*.mp3" | grep -E /.{5}\.mp3$ | sed -e 's/^\(.*\)\.mp3$/mv "&" "\1\.\.mp3"/' | sh