Помогите, пожалуйста, отредактировать скрипт/команду.

Автор Sergei_Alekseev, 18 июня 2013, 00:06:14

« назад - далее »

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

Sergei_Alekseev

Я периодически конверчу мп3 файлы в m4a, чтобы меньше места занимали на карте Nokia e72.
Нашел для этого
скрипт tomp4.sh:
#!/bin/sh                                                                                                                     
mplayer -quiet -vo null -vc null -ao pcm:waveheader:file="/tmp/$$.wav" "$1"                                                   
aacplusenc "/tmp/$$.wav" /tmp/$$.aac "$3"                                                                                     
MP4Box -new -add /tmp/$$.aac "$2"                                                                                             
rm -f /tmp/$$.aac /tmp/$$.wav


и команду для файл-менеджера (emelfm2):

find -name "*.mp3" -exec /usr/sbin/tomp4.sh "{}" "{}.m4a" 24:"{}" "{}.m4a" 24 \;

Проблема в том, что на выходе получаются файлы *.mp3.m4a

Можно как-нибудь сделать чтобы получались *.m4a?

endru

не знаю как сделать именно через ваш скрипт

но есть такая штука

find -name "*.mp3.m4a" -exec rename 's/mp3.m4a/m4a/g' {} \;

переименует ваши файлы с *.mp3.m4a на *.m4a

Sergei_Alekseev

Я хотел изменить команду, а не добавить  ::)
Но всё равно спасибо,
find -name "*.mp3" -exec /usr/sbin/tomp4.sh "{}" "{}.m4a" 24:"{}" "{}.m4a" 24 \; && find -name "*.mp3.m4a" -exec rename 's/mp3.m4a/m4a/g' {} \;
решает вопрос.

rayanAyar

Честно скажу - в скрипт не стал вникать - оформлено плохо, имён переменных нет.

Расширение можно убрать вот так:
FILENAME="filename.ext"
ONLY_EXT=${FILENAME/*.}
ONLY_NAME=${FILENAME%.*}
echo $ONLY_NAME
echo $ONLY_EXT