Использование регулярных выражений в скрипте BASH для получения имени/типа файла, недавно созданного в качестве вывода команды, введенной ранее в последовательности

Использование регулярных выражений в скрипте BASH для получения имени/типа файла, недавно созданного в качестве вывода команды, введенной ранее в последовательности

Я недавно спросилЭтот вопрос об использовании gpaste getвывода как STDINдля youtube-dl. На этот вопрос уже был дан ответ, но я хотел бы перейти к следующему шагу автоматизации многокомандной задачи:

  1. инициировать загрузку видео в текущей папке, используя URL-адрес, скопированный из адресной строки Firefox, команда:youtube-dl $(gpaste get [video url])

  2. преобразовать файл mkv, mp4 или m4a в .wav
    командой:ffmpeg -i [filename of video from step one].<filetype of video from step one> [filename of video from step one].wav

  3. [...процесс продолжается...]

Мой вопрос: я все еще новичок в регулярных выражениях. Есть ли последовательность регулярных выражений, которую я могу использовать, чтобы извлечь имя файла из файла, созданного командой, youtube-dlи использовать его в качестве входных данных для следующей ffmpegкоманды?

Вот пример:

gpaste get 0

возвращаетсяhttps://somevideo.com/video

youtube-dl $(gpaste get 0)

Загружает файл в текущую папку с Yименем файла &&

ffmpeg -i <filename Y>

Вернет дубликат исходного файла, теперь в .wavформате

Как мне заставить bash получить имя файла Y до того, как он будет создан, чтобы я мог поместить все это в скрипт?

Нужно ли мне также фильтровать по диапазону типов файлов (все типы видео) или мне следует фильтровать по самому последнему файлу в текущей папке или по комбинации обоих вариантов?

решение1

Только что проверил документацию youtube-dl, он принимает этот параметр:

--get-filename                   Simulate, quiet but print output filename

Итак, возможно, вы можете попробовать что-то вроде этого:

videourl=$(gpaste get [video url])
videofilename=$(youtube-dl --get-filename $videourl)
youtube-dl $videourl
#further processing. 

Связанный контент