Проблема цикла AVConv с именами выходных файлов

Как я могу превратить:

/media/MediaOne/Movies/Kids/Aladdin.avi
/media/MediaOne/Movies/Kids/Incredibles.avi

в

/media/MediaOne/converted/Aladdin.mp4
/media/MediaOne/converted/Incredibles.mp4

при циклическом просмотре каталога с помощью avconv?

Прямо сейчас они выводятся как:

/media/MediaOne/Movies/Kids/Aladdin.avi.mp4
/media/MediaOne/Movies/Kids/Incredibles.avi.mp4

и вот что я пытаюсь:

for i in /media/MediaOne/Movies/Kids/*.avi; do avconv -i "$i" -c copy "$i.mp4"; done

тоже попробовал:

for i in /media/MediaOne/Movies/Kids/*.avi; do avconv -i "$i" -c copy "/media/MediaOne/converted/$i.mp4"; done

, но получил кучу ошибок, потому что $ i / media / MediaOne / преобразован / не существует

1
задан 07.05.2020, 10:19

1 ответ

Используйте команду basename для удаления расширения из имени файла, обратите внимание на специальные кавычки

`$(basename $i .avi).mp4`

вместо

"$i.mp4"

dirname может помочь извлечь путь к папке, содержащей входной файл. (man dirname за помощь)

2
ответ дан 07.05.2020, 10:19

Теги

Похожие вопросы