"이름 바꾸기"를 통해 파일 이름에 일부 문자를 어떻게 추가할 수 있나요?

"이름 바꾸기"를 통해 파일 이름에 일부 문자를 어떻게 추가할 수 있나요?

예를 들어 이라는 파일이 있습니다 . char로 5번 5.jpg이름을 바꾸려면 어떻게 해야 합니까 ?aaaaa.jpga

나는 그것을 시도했지만 이름이 으로 rename -v 's/(\d{1,})/a{$1}/g' *바뀌었는데 그것은 내가 원하는 것이 아닙니다. 나는 함수의 두 번째 부분이 정규식이 아니라 단지 시도일 뿐이라는 것을 알고 있습니다.5.jpga{5}.jpg

답변1

Linux 세계에는 상상력이 풍부한 이름을 가진 세 가지 유틸리티가 있습니다: (1) rename(1)다음은 util-linux에 포함되어 있습니다 Unicode::Tussle. 내가 아는 한, 원하는 것은 util-linux작동 하지 않습니다 rename(1). 그러나 Perl 스크립트를 사용하여 수행할 수 있습니다.

rename -n 's/(\d+)/"a" x $1/e' 5.jpg

산출:

rename 5.jpg aaaaa.jpg

( -n실제로 파일 이름을 바꾸려면 제거하십시오).

답변2

rename파일 이름을 수정하기 위해 표현식을 사용하는 경우(그리고 큰 경우) perl다음과 같이 원하는 것을 얻을 수 있습니다.

rename 's/(\d+)/"a" x $1/e' *

e플래그는 에 설명되어 있습니다 perldoc perlre. 이는 Perl 표현식으로 평가되도록 오른쪽의 해석을 수정합니다.

관련 정보