Форум русскоязычного сообщества Ubuntu


Считаете, что Ubuntu недостаточно дружелюбна к новичкам?
Помогите создать новое Руководство для новичков!

Автор Тема: Как раскидать mp3 файлы по папкам?  (Прочитано 3108 раз)

0 Пользователей и 1 Гость просматривают эту тему.

Оффлайн vvivan

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
У меня есть 100 файлов .mp3 с названием вида "№. %artistname% - %trackname%.mp3". Подскажите, пожалуйста, как раскидать их в папки по названию исполнителя (с помощью скрипта). Причем папок таких нет, их надо сперва создать... А в баш-скриптах я пока ламер, поэтому обращаюсь к вам за помощью...

Оффлайн xrayman

  • Участник
  • *
  • Сообщений: 153
  • Ubuntu 10.04
    • Просмотр профиля
Re: Как раскидать mp3 файлы по папкам?
« Ответ #1 : 24 Июля 2009, 19:58:29 »
Если файлов всего 100, ИМО, быстрее будет руками

Оффлайн vvivan

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: Как раскидать mp3 файлы по папкам?
« Ответ #2 : 24 Июля 2009, 20:05:13 »
Не думаю, учитывая, что исполнители повторяются редко. Да и потом, хотелось бы понять, как это делать. Я примерно представляю как сделать скрипт, создающий папку и копирующий туда файл, но вот как выдрать из названия только имя исполнителя - не знаю...

ры

  • Гость
Re: Как раскидать mp3 файлы по папкам?
« Ответ #3 : 24 Июля 2009, 20:22:30 »
man egrep
man cut
« Последнее редактирование: 24 Июля 2009, 20:30:46 от ры »

Оффлайн dimanlin

  • Новичок
  • *
  • Сообщений: 10
    • Просмотр профиля
Re: Как раскидать mp3 файлы по папкам?
« Ответ #4 : 24 Июля 2009, 20:28:46 »
Есть обалденный плеер, называется amarok, в нём есть такая фишка. Он берёт инфу из тегов мп3 и в соответствии с ними раскидывает файлы по папкам. Сначало группа потом альбом потом треки. Теги мп3 файлов тоже очень легко редактировать, как у одного файла так и у группы файлов. Это фичу ского вынесут из него в пакет amarok-utils если не ошибаюсь. Мона будет отдельно качать и юзать эту фичу без амарока.

Оффлайн vvivan

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: Как раскидать mp3 файлы по папкам?
« Ответ #5 : 24 Июля 2009, 20:39:58 »
man egrep
man cut

Гениально. Теперь бы еще узнать, как это использовать применительно к именам фалов.

Есть обалденный плеер, называется amarok, в нём есть такая фишка. Он берёт инфу из тегов мп3 и в соответствии с ними раскидывает файлы по папкам. Сначало группа потом альбом потом треки. Теги мп3 файлов тоже очень легко редактировать, как у одного файла так и у группы файлов. Это фичу ского вынесут из него в пакет amarok-utils если не ошибаюсь. Мона будет отдельно качать и юзать эту фичу без амарока.

Это Windows-стайл, поставить огромную ненужную прогу ради одного действия)

Оффлайн Sergijoo

  • Любитель
  • *
  • Сообщений: 71
    • Просмотр профиля
Re: Как раскидать mp3 файлы по папкам?
« Ответ #6 : 24 Июля 2009, 20:55:47 »
Используй программу EasyTag.  Лично я с её помощью решил подобную проблему.

Оффлайн vvivan

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: Как раскидать mp3 файлы по папкам?
« Ответ #7 : 24 Июля 2009, 21:06:55 »
Всем спасибо, разобрался)

ры

  • Гость
Re: Как раскидать mp3 файлы по папкам?
« Ответ #8 : 24 Июля 2009, 22:18:38 »
Гениально. Теперь бы еще узнать, как это использовать применительно к именам фалов.
------8<-------------------------------------
здесь был набросок скрипта
------8<-------------------------------------

вот работающий скрипт:
#!/bin/bash
for NAME in *.mp3
do
ARTIST=$(echo $NAME | cut -f 1 -d '-' | cut -f 1 -d ' ')
if !( [ -a $ARTIST ] )
then
mkdir "$ARTIST"
fi
mv "$(echo $NAME | grep $ARTIST)" "$ARTIST"
done

Пользователь решил продолжить мысль 24 Июля 2009, 23:12:14:
зы: будет неправильно работать если в имени исполнителя есть дефис
« Последнее редактирование: 24 Июля 2009, 23:12:14 от ры »

Оффлайн Nebulosa

  • Активист
  • *
  • Сообщений: 397
    • Просмотр профиля
Re: Как раскидать mp3 файлы по папкам?
« Ответ #9 : 25 Июля 2009, 08:31:52 »
зы: будет неправильно работать если в имени исполнителя есть дефис
ARTIST= ${t%% - *};  из http://gazette.linux.ru.net/rus/articles/abs-guide/x4458.html#PSUB2

#!/bin/bash
for NAME in *.mp3
do
ARTIST= ${t%% - *};
[ -e "$ARTIST" ] || mkdir "$ARTIST";
mv -t "$ARTIST" "$NAME"
done
:)

Оффлайн vvivan

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: Как раскидать mp3 файлы по папкам?
« Ответ #10 : 25 Июля 2009, 11:47:40 »
Да, спасибо всем, я разобрался, правда чуток по-другому.
Теперь у меня другой вопрос - как в этом же скрипте заполнить id3 теги информацией из названия файла (исполнитель и название)? Тут даже не знаю, куда копать, с командой id3 разобраться не могу никак...

ры

  • Гость
Re: Как раскидать mp3 файлы по папкам?
« Ответ #11 : 25 Июля 2009, 12:27:55 »
ARTIST= ${t%% - *};  из http://gazette.linux.ru.net/rus/articles/abs-guide/x4458.html#PSUB2

#!/bin/bash
for NAME in *.mp3
do
ARTIST= ${t%% - *};
[ -e "$ARTIST" ] || mkdir "$ARTIST";
mv -t "$ARTIST" "$NAME"
done
:)
да, особенно забавно про || затупила
я и не говорила, что не изобретаю велосипед
спасибо за исправления

Пользователь решил продолжить мысль 25 Июля 2009, 11:38:17:
Да, спасибо всем, я разобрался, правда чуток по-другому.
Теперь у меня другой вопрос - как в этом же скрипте заполнить id3 теги информацией из названия файла (исполнитель и название)? Тут даже не знаю, куда копать, с командой id3 разобраться не могу никак...
ты уже разобрался с теми скриптами, которые тебе тут написали для предыдущей задачи?
судя по всему, нет
по идее, ты в том же цикле для каждого файла делаешь что-то типа
id3tag --artist=$ARTIST --song=$SONG(по фен-шую ещё стоит убрать из имени трека имя исполнителя. введи новую переменную типа $SONG и туда запиши только имя трека. как сделать - смотри с существующих скриптах в месте, где вы записываем в переменную $ARTIST имя исполнителя)
ну и остальное (год, альбом итд руцями)
вот тебе в помощь:
id3tag --help
id3tag
Usage: id3tag [OPTIONS]... [FILES]...
   -h         --help            Print help and exit
   -V         --version         Print version and exit
   -1         --v1tag           Render only the id3v1 tag (default=off)
   -2         --v2tag           Render only the id3v2 tag (default=off)
   -aSTRING   --artist=STRING   Set the artist information
   -ASTRING   --album=STRING    Set the album title information
   -sSTRING   --song=STRING     Set the title information
   -cSTRING   --comment=STRING  Set the comment information
   -CSTRING   --desc=STRING     Set the comment description
   -ySTRING   --year=STRING     Set the year
   -tSTRING   --track=STRING    Set the track number
   -TSTRING   --total=STRING    Set the total number of tracks
   -gSHORT    --genre=SHORT     Set the genre
   -w         --warning         Turn on warnings (for debugging) (default=off)
   -n         --notice          Turn on notices (for debugging) (default=off)
ну и раз ты уже распихал всё по папкам, нужен новый скрипт, который будет рекурсивно по ним лазить
« Последнее редактирование: 25 Июля 2009, 12:40:47 от ры »

Оффлайн vvivan

  • Автор темы
  • Любитель
  • *
  • Сообщений: 89
    • Просмотр профиля
Re: Как раскидать mp3 файлы по папкам?
« Ответ #12 : 25 Июля 2009, 13:16:48 »
С теми скриптами более менее разобрался. Просто у меня была одна папка с неупорядоченными файлами, но теги были заполнены. А есть еще одна - без заполненных тегов. Вот для нее я и хочу дополнить скрипт

Оффлайн ArcFi

  • Старожил
  • *
  • Сообщений: 15189
    • Просмотр профиля
    • aetera.net
Re: Как раскидать mp3 файлы по папкам?
« Ответ #13 : 25 Июля 2009, 13:17:36 »
Ой-ой, сколько гемора, easytag же проще. :)

Оффлайн baklan

  • Активист
  • *
  • Сообщений: 387
    • Просмотр профиля
    • backline
Re: Как раскидать mp3 файлы по папкам?
« Ответ #14 : 25 Июля 2009, 13:36:13 »
Еще есть базы данных и SQL

 

Страница сгенерирована за 0.017 секунд. Запросов: 19.