У меня есть куча AVI, которую я бы хотел переработать в h264 MKVs. Команда, которую я пытаюсь использовать, это:Использование xargs и sed для обработки avi-файлов
find . -name "*.avi" | xargs -I '{}' ffmpeg -i {} -vcodec libx264 `echo {} | sed 's/avi/mkv/'`
Однако, он не работает должным образом. Добавление -t в xargs показывает, что команда является прогон (предоставляется каталог с file1.avi)
ffmpeg ./file1.avi -vcodec libx264 ./file1.avi
Я не знаю, почему СЭД команда не получает обрабатываются корректно. ffmpeg терпит неудачу, поскольку по умолчанию он не перезаписывается.
AVI все находятся в подкаталогах, поэтому я не хочу делать цикл for для каждой вложенной папки и find/xargs будет гораздо лучшим решением. Кроме того, я действительно не хочу переименовывать все после того, как это будет сделано.
Хотя мне нравятся примеры одного лайнера, я собираюсь сказать, что мне это нравится больше. Только потому, что он напоминает мне, что я могу предварительно определить функции в ~/.bashrc для повторных задач. – tscheez