.wavファイルを.mp3ファイルに変換するときに、次のスクリプト行で正規表現を使用して最後の4文字を削除する方法はありますか?現在私の1行スクリプトは、次に終わるファイルを生成します。.wav.mp3
for i in *.wav; do avconv -i "$i" "$i".mp3;done
次の出力を生成します
Sanctify, Separate, & Success Success.wav.mp3
There four types of love.wav.mp3
Theres too much love to let you fail.wav.mp3
ベストアンサー1
正規表現は不要で、Bashを使いたいです。パラメータ拡張転送からファイル拡張子を削除します。
for i in *.wav; do avconv -i "$i" "${i%.*}".mp3; done
ここでは"${i%.*}"
パターンに展開されます。パラメータの終わりつまり、*
最も短い一致を削除した後、すべての項目()で定義されます。.
.wav
を使用してリテラル置換を実行することもできます"${i/.wav/.mp3}"
。