複数のファイル名から異なる文字を削除して置き換える最善の方法は何ですか?

複数のファイル名から異なる文字を削除して置き換える最善の方法は何ですか?

次の形式のファイルでいっぱいのいくつかのフォルダがあります。

Show Name - 07x09 - Episode Title.mp4

私がしたいのは、名前を次の形式に変更することです。

Show.Name.S07E09.Episode.Title.mp4

私はいくつかの名前変更コマンドを使ってこれをしました。

rename 's/ - /./g' *
rename 's/ /./g' *
rename 's/.([0-9]+)x([0-9])/.S$1E$2/g' *

しかし、私はより良い、より効果的な方法が必要であることを知りました。この問題をどのように解決しますか?

答え1

次のように動作する必要があります。

rename -n -v 's/[- ]+/./g; s/([0-9]+)x([0-9]+)/S$1E$2/' ./*.mp4

目的の結果が出たら、-nファイル名を変更するオプションを削除します。


デモ:

rename(./Sh  ow Name -  07x09 - Episode Title.mp4, ./Sh.ow.Name.S07E09.Episode.Title.mp4)
rename(./Sh  ow Name - 07x09 - Episode Title.mp4, ./Sh.ow.Name.S07E09.Episode.Title.mp4)
rename(./Sh  ow Name-  07x09 - Episode Title.mp4, ./Sh.ow.Name.S07E09.Episode.Title.mp4)
rename(./Sh  ow Name- -  07x09 - Episode Title.mp4, ./Sh.ow.Name.S07E09.Episode.Title.mp4)
rename(./Sh  ow Name- \---  07x09 - Episode Title.mp4, ./Sh.ow.Name.\.S07E09.Episode.Title.mp4)
rename(./Sh  ow Name--  07x09 - Episode Title.mp4, ./Sh.ow.Name.S07E09.Episode.Title.mp4)
rename(./Show Name - 07x09 - Episode Title.mp4, ./Show.Name.S07E09.Episode.Title.mp4)

関連情報