バッシュを使用している場合
${f%%.mp4}
拡張子なしのファイル名が表示されます.mp4
。
次のように使用してみてください。
for f in *.mp4; do
ffmpeg -i "$f" -f mp3 -ab 192000 -vn "mp3s/${f%%.mp4}.mp3"
done
do
...そして、与えられた例のようにキーワードを忘れないでください。
説明
bash Manual( man bash
) には次のように記載されています。
${parameter%word} ${parameter%%word}
一致するサフィックス パターンを削除します。パス名の展開と同様に、単語が展開されてパターンが生成されます。パターンが parameter の展開された値の末尾部分と一致する場合、展開の結果は、一致する最も短いパターン ( %'' case) or the longest
matching pattern (the
%%'' の場合) が削除された parameter の展開された値になります。parameter が @ または * の場合、パターン除去操作は各位置パラメーターに順番に適用され、展開は結果のリストになります。parameter が @ または * で添字付けされた配列変数である場合、パターン除去操作は配列の各メンバーに順番に適用され、展開は結果のリストになります。
これは、シェル変数に対して実行できる多くの文字列操作の 1 つにすぎません。それらはすべてParameter Expansionという名前で呼ばれます。
これは、bash マニュアルに記載されているセクション ラベルでもあります。したがってman bash
/paramter exp、そこにすばやく移動する必要があります。`