Нужно лишить начало. / символов в функции
for f in ./*.mp3; do sox "$f" "${f%%.mp3}processed.mp3" silence 1 0.02 1% -1 0.02 1%; done
Это скрипт, который я использую для обработки аудиофайлов. Проблема в том, что он продолжает работать в цикле, обрабатывая и новые аудиофайлы. Я хотел бы исправить это, поместив вывод в подпапку, поэтому я попробовал это сделать:
for f in ./*.mp3; do sox "$f" "/subfolder${f%%.mp3}processed.mp3" silence 1 0.02 1% -1 0.02 1%; done
Это и есть выход:
/subfolder./01processed.mp3
Это дает мне ошибку с SoX, мне нужно удалить файл ./ перед выводом имени файла, как я могу это сделать? Это тот результат, который я хотел бы получить:
/subfolder/01processed.mp3
Что я уже пробовал:
Я попытался указать подпапку, но, похоже, не могу удалить ведущий файл ./ из имени файла, и это приводит к сбою SoX.
Richard MacCutchan
Почему бы не оставить ./
с самого начала, и код просто:for f in *.mp3; ...