1

Я пытаюсь найти все файлы * .flac в дереве каталогов, закодировать их с помощью ffmpeg, а затем вывести их в соответствующее дерево в другом месте. Я использую Cygwin на Windows 10. Это то, что я до сих пор:

$ find /cygdrive/d/Users/Drew/Music/beets/Music -type f -name '*\.flac' > files
$ while read line; do ffmpeg -i "$line" -f null "$(echo $line | sed 's/\.flac/\.mp3/' | sed 's/Music\/beets/Desktop/')"; done < files

Первая команда сгенерировала хороший список файлов (что я могу сказать), но цикл while выдает ошибки ffmpeg каждому другому файлу из-за обрезания начального символа '/':

cygdrive/d/Users/Drew/Music/beets/Music/$uicideboy$/Eternal Grey/06 Uglier.flac: No such file or directory

и иногда другая ошибка, казалось бы, случайная, когда обрезаются 2 символа:

Parse error, at least 3 arguments were expected, only 1 given in string 'ygdrive/d/Users/Drew/Music/beets/Music/$uicideboy$/Eternal Grey/08 Elysian Fields.flac'

Есть ли здесь какая-то проблема с переводом строки, которую я не могу обнаружить? Это что-то еще? Почему это происходит?

0