BASH スクリプトで正規表現を使用して、シーケンスの前のコマンドによって出力として最近作成されたファイル名/タイプを取得します。

BASH スクリプトで正規表現を使用して、シーケンスの前のコマンドによって出力として最近作成されたファイル名/タイプを取得します。

私は最近尋ねましたyoutube-dlのgpaste get出力の使用に関する質問STDINその質問はその後答えられましたが、マルチコマンドタスクの自動化の次のステップに進みたいと思います。

  1. Firefox コマンドの URL バーからコピーした URL を使用して、現在のフォルダー内のビデオのダウンロードを開始します。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形式で返します。

ファイル名 Y が存在する前にそれを bash に取得させて、すべてをスクリプトに組み込むにはどうすればよいですか?

ファイルタイプの範囲(すべてのビデオタイプ)に応じてフィルタリングする必要もあるのでしょうか、それとも現在のフォルダー内の最新のファイル、あるいはその両方の組み合わせでフィルタリングする必要があるのでしょうか?

答え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. 

関連情報