여러 파일 이름에서 서로 다른 문자를 제거하고 바꾸는 가장 좋은 방법은 무엇입니까?

여러 파일 이름에서 서로 다른 문자를 제거하고 바꾸는 가장 좋은 방법은 무엇입니까?

다음 형식의 파일로 가득 찬 여러 폴더가 있습니다.

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)

관련 정보