@L_V_S

Как убрать из имени файла «.wav» при выводе find . -name «*.wav»?

написал небольшой скрипт для пакетного перекодирования файлов из wav в mp3
#!/bin/bash
for i in $(find . -name "*.wav");
do
  file=$i
  lame -b 16  $file $file.mp3
done


Скрипт запускается из папки numbers

/numbers
/905xxxxxx #номер телефона
---/2014 #папка год
---/06 # папка месяц
---/22 #папка дата
12_01_файл.wav
12_05_файл.wav
---/07
13_01_файл.wav
После выполнения скрипта файлы конвертируются вот так 12_01_файл.wav.mp3

Как и в каком месте лучше в скрипте убрать .wav в и получать 12_01_файл.mp3 ?
  • Вопрос задан
  • 2413 просмотров
Решения вопроса 1
RicoX
@RicoX
Ушел на http://ru.stackoverflow.com/
Вариант 1:
Заменить строку
file=$i
на
file=${i%.*}
И в строке перекодировщика сделать
lame -b 16 $file.wav $file.mp3

Вариант 2:
После строки
lame -b 16 $file $file.mp3
сделать
mv $file.mp3 $(echo "$file.mp3" | sed 's/\.wav//g')
Ответ написан
Пригласить эксперта
Ответы на вопрос 1
@ShamblerR
find . -name '*\.wav' | sed 's/\.wav//g'
Ответ написан
Комментировать
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Войти через центр авторизации
Похожие вопросы