最後の4文字を削除する正規表現

最後の4文字を削除する正規表現

.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}"

おすすめ記事