예를 들어 이라는 파일이 있습니다 . char로 5번 5.jpg
이름을 바꾸려면 어떻게 해야 합니까 ?aaaaa.jpg
a
나는 그것을 시도했지만 이름이 으로 rename -v 's/(\d{1,})/a{$1}/g' *
바뀌었는데 그것은 내가 원하는 것이 아닙니다. 나는 함수의 두 번째 부분이 정규식이 아니라 단지 시도일 뿐이라는 것을 알고 있습니다.5.jpg
a{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 표현식으로 평가되도록 오른쪽의 해석을 수정합니다.