LINUX.ORG.RU

bash question


0

0

пытаюсь осилить advanced bash scripting-туториал, конечно отличный,но..
допустим есть директория с мп3, где названия файлов такие:
01 - Some Song1.MP3
02 - Some Song2.MP3
...
требуется:
выдернуть из имён - titles для тэгов, затем привести файлы к такому виду:
01.mp3
02.mp3
...
делаю примерно так:
1.часть, отвечающая за парсинг имени файла и запись его в кач-ве титла, выглядит так:
eyeD3 -t `ls 01 - Some Song1.MP3 | sed 's/[0-9]\+ - //; s/.MP3//'` 01 - Some Song1.MP3
2.как правильно оформить замену одного расширения на другое, чтобы это решение можно было потом поюзать ещё (в abst пример есть - но что-то не догоню никак применительно к ситуации)
3.как передать параметры скрипта - вызываемым внутри скрипта утилитам, т.е.:
если скрипт запустить для 10 мп3 указанного формата в директории:
script dir1/*.MP3
как передать список [01-10].MP3 тому же eyeD3 ?
например так (предпологается что после запуска script dir1/*.MP3 eyeD3 последовательно должен получить имена файлов и пронумеровать тэги):
for i in "$@"; do
eyeD3 -n $i
сколько вариантов не пробовал - что-то не выходит правильно...

anonymous

вопрос 2 - с рассмотрения снимается:
покурил туториал, вся понял окончательно.
в итоге остался только третий вопрос.=)

anonymous
()
Ответ на: комментарий от grob

Спасибо огромное, работает, только следом возникла трабла:
перестал работать метод выдергивания титлов =)
делаю так:
TITLE=`ls "${!i}" | sed 's/[0-9]\+ - //; s/.MP3//'` #переменная

for i in $(seq $#)
do
eyeD3 -t "$TITLE"
done

В итоге заголовки пустые, то есть переменная не получает нужной строки.
Ошибка, видимо, в ls "${!i}" , но как тогда правильно получить имя файла ?

anonymous
()
Ответ на: комментарий от anonymous

--fixed--
Спасибо огромное, работает, только следом возникла трабла:
перестал работать метод выдергивания титлов =)
делаю так:
TITLE=`ls "${!i}" | sed 's/[0-9]\+ - //; s/.MP3//'` #переменная

for i in $(seq $#)
do
eyeD3 -t "$TITLE" "${!i}"
done

В итоге заголовки пустые, то есть переменная не получает нужной строки.
Ошибка, видимо, в ls "${!i}" , но как тогда правильно получить имя файла ?

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