find 명령으로 찾은 입력에서 사용자 정의 출력을 생성하려면 어떻게 해야 합니까?

find 명령으로 찾은 입력에서 사용자 정의 출력을 생성하려면 어떻게 해야 합니까?

사용자(vcodec)로부터 값을 읽으려고 합니다. 이제 find명령은 파일을 찾아 {}. 매개변수 확장을 사용하여 사용자 정의 출력을 생성하고 싶습니다. 하지만 물론 오류가 발생합니다 'bad substitution'. 이 문제를 어떻게 해결할 수 있나요? 감사해요.

#!/bin/bash

read vcodec
find -exec ffmpeg -i "{}" -c:v "$vcodec" "${{}%.*}.mkv" \; 

답변1

이것을 사용하십시오 :

read -p 'vcodec >>> ' vcodec
find . -exec bash -c 'ffmpeg -i "$2" -c:v "$1" "${2%.*}.mkv"' -- "$vcodec" {} \; 

관련 정보