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" {} \; 

おすすめ記事