Usare regex nello script BASH per afferrare il nome / tipo di file recentemente creato come output dal comando precedentemente nella sequenza


1

Di recente ho posto questa domanda sull'uso gpaste getdell'output come STDINper youtube-dl . Da allora a questa domanda è stata data una risposta, ma vorrei passare alla fase successiva dell'automazione un'attività multi-comando:

  1. avvia un download di video nella cartella corrente utilizzando l'URL copiato dalla barra dell'URL nel comando firefox: youtube-dl $(gpaste get [video url])

  2. converti il ​​file mkv o mp4 o m4a in un
    comando .wav :ffmpeg -i [filename of video from step one].<filetype of video from step one> [filename of video from step one].wav

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

La mia domanda è: sono ancora nuovo su regex. Esiste una sequenza regex che posso utilizzare per afferrare il nome file dal file creato dal youtube-dlcomando e usarlo come input per il ffmpegcomando seguente ?

Ecco un esempio:

gpaste get 0

ritorna https://somevideo.com/video

youtube-dl $(gpaste get 0)

Scarica il file nella cartella corrente con Ynome file &&

ffmpeg -i <filename Y>

Restituirà un duplicato del file iniziale, ora in .wavformato

Come posso dire a bash di ottenere quel nome file Y prima che esista, in modo da poterlo inserire in uno script?

Dovrei anche filtrare in base a una gamma di tipi di file (tutti i tipi di video) o filtrare per il file più recente nella cartella corrente o una combinazione di entrambi?

Risposte:


1

Ho appena verificato la documentazione di youtube-dl, accetta questo parametro:

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

Quindi, forse puoi provare qualcosa del genere:

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

Ricordo di aver visto questo parametro nelle pagine man, ma non avevo idea di come usarlo. La tua soluzione ha un senso totale, basta impostarla come variabile, quindi chiamarla nel prossimo comando della sequenza, giusto?
Andrew,

@ AndÚ, esattamente.
David Dai,
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.