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)
ну и раз ты уже распихал всё по папкам, нужен новый скрипт, который будет рекурсивно по ним лазить