perl-rename 's/b(\d{2}A)/\1/' *
파일의 모든 부분을 찾아 이름 바꾸기
"b" 다음에
그다음에는 2자리 숫자
"ㅏ"
정규식에서 대소문자를 구분하지 않게 만드는 옵션이나 방법이 있습니까? 즉, 첫 번째 부분의 대문자 "B" 및/또는 마지막 부분의 소문자 "a"도 일치합니까?
답변1
Perl의 바꾸기 명령 s///
(Perl 명령도 포함 )에는 대소문자를 구분하지 않는 일치를 수행하는 rename
플래그가 있습니다 . /i
당신이해야 할 일은
perl-rename -n 's/b(\d{2}A)/\1/i' *.jpg
-n
파일 이름이 예상대로 바뀌었음이 확실하면 플래그를 제거하십시오. 파일 이름이 최종적으로 어떻게 바뀌는지 보여주기 위해 테스트 실행만 수행합니다.
하나 이상의 문자에 대해 대소문자를 구분하지 않는 일치를 선택적으로 허용하려면 예를 들어 [aA]
(일치 a
또는 A
)를 사용하십시오.
답변2
수정자는 가장 일반적이고 잘 알려진 답변 이지만 /i
정규식 자체 내에서 수정될 수도 있다고 말해야 합니다.
/(?i)b(\d{2}A)/
이는 동적으로 생성된 스키마, 파일에 저장된 스키마 등에 유용합니다. 또한 그룹으로 제한하여(캡처 또는 기타) "끄기"할 수 있습니다.
/(?:(?i)b(\d{2}A)) Foo Bar/ # the Foo Bar portion is still case-sensitive
또는 모달 설정이므로 부정을 통해 닫을 수 있습니다.
/(?i)b(\d{2}A)(?-i) Foo Bar/ # again only Foo Bar is case sensitive