Я в процессе объединение аудиофайлов ogg в большом количестве с помощью ffmpeg с использованием mylist.txt файл
Формат mylist.txt файл
file '/path/to/file1.wav'
file '/path/to/file2.wav'
file '/path/to/file3.wav'
Мой 'ls -l' выходной образец аудиофайлов WhattsAPP ogg похож на
-rw-rw-r-- 1 work work 64112 Nov 14 18:43 'WhatsApp Ptt 2019-11-11 at 10.19.18 AM.ogg'
-rw-rw-r-- 1 work work 24616 Nov 14 18:43 'WhatsApp Ptt 2019-11-11 at 10.19.50 AM.ogg'
-rw-rw-r-- 1 work work 26166 Nov 14 18:43 'WhatsApp Ptt 2019-11-11 at 10.20.18 AM.ogg'
-rw-rw-r-- 1 work work 69895 Nov 14 18:43 'WhatsApp Ptt 2019-11-11 at 10.21.05 AM.ogg'
-rw-rw-r-- 1 work work 85416 Nov 14 18:43 'WhatsApp Ptt 2019-11-11 at 10.27.09 AM.ogg'
Как мне получить только 'WhatsApp Ptt 2019-11-11 в 10.19.18 AM.ogg' части каждой строки в 'ls -l' вывод с использованием вырезать, sed, awk или любой другой инструмент в файл с помощью одной команды?
Как добавить ключевое слово "файл" перед всеми именами файлов в файле с помощью одной команды?
Можно ли объединить процессы 1. и 2. в одну команду?
Содержимое окончательного файла должно выглядеть так:
file 'WhatsApp Ptt 2019-11-12 at 10.21.59 AM.ogg'
file 'WhatsApp Ptt 2019-11-12 at 10.29.45 AM.ogg'
file 'WhatsApp Ptt 2019-11-12 at 10.31.52 AM.ogg'
file 'WhatsApp Ptt 2019-11-12 at 9.31.38 AM.ogg'
Проще использовать glob
вместо того ls
работать со списком имён файлов
for f in *; do
echo file \'$f\'
done
/ bin / ls -1
Это оставляет всю слизь :)
Проблема в том, что ls в большинстве дистрибутивов имеет псевдоним вроде «ls -la». Вы можете проверить это с помощью «alias ls» и посмотреть, появится ли что-нибудь
Также использование абсолютного пути (с / bin /) позволит избежать использования псевдонима.