次のスクリプトがあります。
#!/bin/bash
# $1 -- extension, like *.MP4
# $2 -- output file name
ffmpeg -f concat -i <(find . -name '$1' -printf "file '$PWD/%p'\n" | sort) -c copy $2
MP4ファイルを関連付けようとすると、次のエラーが発生します。
/dev/fd/63: 入力の処理中に無効なデータが見つかりました。
何が問題なのでしょうか? Ubuntu 16.04ベースのLinux Mint 18を使用してください。
PS:問題は、$ 1が引用符( '$ 1')に置き換えられていないことです。これでハードコードされています。交換するには?
答え1
-name
これはうまくいきます - フラグはこれを許可するので、拡張子を引用符の外に移動します。
#!/bin/bash
# $1 -- extension, like MP4
# $2 -- output file name
echo Extension: $1
echo Output: $2
echo Files:
find . -name \*.$1 -printf "file '$PWD/%p'\n" | sort
ffmpeg -f concat -i <(find . -name \*.$1 -printf "file '$PWD/%p'\n" | sort) -c copy $2