파일 이름에서 특정 문자열을 제거하는 방법은 무엇입니까?

파일 이름에서 특정 문자열을 제거하는 방법은 무엇입니까?

나는 집에 있는 HTPC(플렉스 서버)용으로 많은 DVD를 리핑합니다. 일부 파일 이름에는 원하지 않는 문자가 포함되어 있습니다. 원래 파일 이름 문자열의 대부분을 유지하고 그 안의 원하지 않는 텍스트를 제거하고 싶습니다. 여기 몇 가지 예가 있어요.

  • 기존 파일 이름 , 새 파일 이름 Apollo 18-1.mp4삭제 규칙: 선택한 디렉터리에서 "-1"로 끝나는 모든 파일 이름을 찾고 "-1" 문자열을 제거합니다.-1Apollo 18.mp4
  • 파일 이름 ENTOURAGE_DISC1.Title1.avi, .Title1새 파일 이름 삭제 ENTOURAGE_DISC1.avi규칙: 선택한 디렉터리에서 ".Title1"로 끝나는 모든 파일 이름을 찾아 ".Title1" 문자열을 제거합니다.

답변1

zshs 를 사용하여 zmv다음 두 가지 예에서 요구 사항을 추론합니다.

autoload zmv # best in ~/.zshrc
zmv '(*)(.Title<->|-<->).(mp4|avi)' '$1.$3'

<->임의의 십진수 시퀀스입니다. ( <x-y>경계를 제공하지 않는 형태). .Title1특정 -1확장명 만 원하는 경우 언제든지 다음과 같이 변경할 수 있습니다.

zmv '(*)(.Title|-)1(.[^.]##)' '$1$3'

[^.]##점이 아닌 문자 하나 이상과 일치합니다.

관련 정보