LINUX.ORG.RU

шелл, перекодирование lame


0

0

Привет! Делаю так: find . -name '*.wav" -exec lame -b 256 {} \; Хочу получить mp3 из wav, всё получается, но в именах *wav.mp3, вместо *mp3, что кажется лишним. Подскажите, а то сам буду долго дотумкивать, как модифицировать выражение. Спасибо!

★★★
Ответ на: комментарий от grimp3ur

>grimp3ur
Спасибо огромное! Оформил так (ещё более громоздко :) ):

#!/bin/bash

find . -name "*.wav" | \
while read w; do
lame -b 256 "$w" "${w/%wav/mp3}"
done

baaba ★★★
() автор топика
Ответ на: комментарий от baaba

Вернее вот так lame -b $* "$w" "${w/%wav/mp3}", задать битрейт, как аргумент

baaba ★★★
() автор топика
Ответ на: комментарий от baaba

echo -n "Исполнитель:"; read ta
echo -n "Альбом:"; read tl
echo -n "Композиция:"; read tt
echo -n "Год:"; read ty

А вот эту бяку как то можно оптимизировать?

baaba ★★★
() автор топика
Ответ на: комментарий от baaba

Вопрос: как сделать так, что бы, если аргумент не задан, подставлялось некоторое, заранее определённое значение по умполчанию, 128.
Сейчас скрипт выглядит так:

#!/bin/bash
if [ $# -ne 1 ]
then
cat <<- ERR
Не хватает аргументов.
Укажите битрейт.
ERR
exit 1
fi
find . -name "*.wav" | \
while read w; do
lame -b $1 "$w" "${w/%wav/mp3}"
done

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

baaba ★★★
() автор топика
Ответ на: комментарий от baaba

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

if [ $# -ne 1 ]
then
RATE=128
else
RATE=$1
fi

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

>polachok
Огромедное спасибище, сейчас буду это пробовать..

Но у меня снова вопрос:

#!/bin/bash
echo -n "Преобразование WAV > MP3
Укажите битрейт: "; read br
find . -name "*.wav" | \
while read w; do
lame -b $br \
--tt `echo "$w" | cut -d\/ -f2 | cut -d . -f1`\
"$w" "${w/%wav/mp3}"
done

Этот скрипт не обрабатывает файлы с пробелами в названиях, пропускает
Убираю строчку
--tt `echo "$w" | cut -d\/ -f2 | cut -d . -f1`\
Всё работает. Я не пойму, какая связь?

Вот ошибка:

lame: excess arg ./Три и Два.wav

Когда эта строка есть, файлы с пробелами вылетают, с такой ошибкой.

Спасибо.

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