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현재 형식 으로 초기 파일의 복사본을 반환합니다.

이 모든 것을 스크립트에 넣을 수 있도록 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. 

관련 정보