파일 이름의 하위 문자열을 교체하여 파일 이름을 일괄적으로 바꾸는 방법은 무엇입니까?

파일 이름의 하위 문자열을 교체하여 파일 이름을 일괄적으로 바꾸는 방법은 무엇입니까?

ABC_asd_f.txt, , ... DEF_qwe_r.txt같은 파일이 있습니다 .

첫 번째 밑줄 앞의 대문자를 그 뒤의 소문자로 바꾸는 방법은 무엇입니까? 그래서 그것은 , ABC_asd_f.txt되었다 , ...asd_f_ABC.txtDEF_qwe_r.txtqwe_r_DEF.txt

답변1

Perl을 사용하여 이름을 바꿉니다. -n플래그를 사용하여 테스트 실행을 시작하세요 .

rename -n 's/^(...)_(..._.)/$2_$1/' *

그런 다음, 만족스러우면 실제로 실행해 보세요.

rename 's/^(...)_(..._.)/$2_$1/' *

설명하다

이는 캡처 그룹을 사용합니다.

  • rename 's/foo/bar/' *: 모든 파일 foo로 대체됩니다 .bar*
  • ^(...)_(..._.): 줄의 시작 부분에서 시작하여 ^처음 세 문자를 캡처하고 (...)건너뛴 _다음 네 번째 문자가 밑줄인 다음 5개 문자를 캡처합니다 (..._.).
  • $2_$1: 위의 문자열을 반대 캡처 그룹(예: 두 번째, 밑줄, 첫 번째)으로 바꿉니다.

버전 이름 바꾸기

renameLinux 세계에는 두 개의 가 있습니다. 다음을 사용하여 Perl 이름 바꾸기인지 알 수 있습니다.

$ rename --version
perl-rename 1.9

다른 하나는 다른 결과를 제공합니다.

$ rename --version
rename from util-linux 2.28

관련 정보