Usando regex no script BASH para obter o nome/tipo do arquivo criado recentemente como saída pelo comando anterior na sequência

Usando regex no script BASH para obter o nome/tipo do arquivo criado recentemente como saída pelo comando anterior na sequência

Eu perguntei recentementeEsta questão sobre o uso da gpaste getsaída como STDINno youtube-dl. Essa pergunta já foi respondida, mas gostaria de passar para a próxima etapa da automação de uma tarefa multicomando:

  1. inicie o download do vídeo na pasta atual usando o URL copiado da barra de URL no comando do Firefox:youtube-dl $(gpaste get [video url])

  2. converta o arquivo mkv ou mp4 ou m4a em um
    comando .wav:ffmpeg -i [filename of video from step one].<filetype of video from step one> [filename of video from step one].wav

  3. [...processo continua...]

Minha pergunta é: ainda sou novo em regex. Existe uma sequência regex que posso empregar para obter o nome do arquivo criado pelo youtube-dlcomando e usá-lo como entrada para o ffmpegcomando a seguir?

Aqui está um exemplo:

gpaste get 0

retornahttps://somevideo.com/video

youtube-dl $(gpaste get 0)

Baixa o arquivo para a pasta atual com Ynome de arquivo &&

ffmpeg -i <filename Y>

Retornará uma duplicata do arquivo inicial, agora no .wavformato

Como posso dizer ao bash para obter esse nome de arquivo Y antes que ele exista, para que eu possa colocar tudo isso em um script?

Eu também precisaria filtrar de acordo com vários tipos de arquivos (todos os tipos de vídeo) ou filtraria o arquivo mais recente na pasta atual ou uma combinação de ambos?

Responder1

Acabei de verificar a documentação do youtube-dl, ela aceita este parâmetro:

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

Então, talvez você possa tentar algo assim:

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

informação relacionada