Форум русскоязычного сообщества Ubuntu


Увидели сообщение с непонятной ссылкой, спам, непристойность или оскорбление?
Воспользуйтесь ссылкой «Сообщить модератору» рядом с сообщением!

Автор Тема: Изменить команду конвертирования аудиофайдов.  (Прочитано 790 раз)

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

Оффлайн gamayun

  • Автор темы
  • Активист
  • *
  • Сообщений: 823
  • Кто ищет, тот найдёт, может быть...
    • Просмотр профиля
В архиве много музыки разных форматов.Решил все перебить в mp3 так:в терминале: cd /бла/бла/музыка и потом for x in *.wav; do ffmpeg -i "$x" "`basename "$x" .wav`.mp3" && rm -v "$x"; done,т.е.все файлы wav конвертируются в mp3 и wav удаляются.Так же с wma и др.Но работает только в указанной папке,не трогая подпапки.Как изменить команду чтобы прогнать со всеми подкаталогами?
Не бери в голову

Оффлайн kalek

  • Активист
  • *
  • Сообщений: 267
    • Просмотр профиля
Пропишите вашу команду для переименования в скрипт, дайте ему права на исполнение и запустите
find /где/там/музыка/ -name *.wav -exec ваш_скрипт_для_переконвертированияВыполнит прописанный скрипт для всех *.wav в самом каталоге /где/там/музыка/ и его подкаталогах

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
Код: (bash) [Выделить]
for x in $(find /бла/бла/музыка -iname='*.wav' -o -iname='*.wma' 2>/dev/null); do ffmpeg -i "$x" "${x%.*}.mp3" && rm -v "$x"; done
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн gamayun

  • Автор темы
  • Активист
  • *
  • Сообщений: 823
  • Кто ищет, тот найдёт, может быть...
    • Просмотр профиля
Че-то пошло не так.На оба варианта bash: ошибка синтаксиса около неожиданной лексемы `do'
или find: все пути должны предшествовать выражению: beep-14.wav
Использование: find [-H] [-L] [-P] [-Oуровень] [-D help|tree|search|stat|rates|opt|exec] [путь...] [выражение]
Не бери в голову

Оффлайн Azure

  • Почётный модератор
  • Старожил
  • *
  • Сообщений: 6017
  • Windows10, i3wm on Debian9, Manjaro20.0
    • Просмотр профиля
А Вы реальный путь подставили вместо /бла/бла/музыка?
В Linux можно сделать ВСЁ что угодно, достаточно знать КАК !

Оффлайн kalek

  • Активист
  • *
  • Сообщений: 267
    • Просмотр профиля
Можно попробовать следующий скрипт:
#!/bin/bash
for x in `find /бла/бла/музыка -name *.wav -print`
do
ffmpeg -i "$x" ${x%wav}mp3
rm -v "$x"
done

Оффлайн gamayun

  • Автор темы
  • Активист
  • *
  • Сообщений: 823
  • Кто ищет, тот найдёт, может быть...
    • Просмотр профиля
Azure,
ivanich@ivanich-Vostro-A860:~$ for x in $(find /home/ivanich/1 -iname='*.wav' -o -iname='*.wma' 2>/dev/null); do ffmpeg -i "$x" "${x%.*}.mp3" && rm -v "$x"; done
ivanich@ivanich-Vostro-A860:~$

Просто не реагирует
На второй повтор:find: все пути и т.д.
Не бери в голову

 

Страница сгенерирована за 0.016 секунд. Запросов: 22.