!["이름 바꾸기"를 통해 파일 이름에 일부 문자를 어떻게 추가할 수 있나요?](https://linux55.com/image/67193/%22%EC%9D%B4%EB%A6%84%20%EB%B0%94%EA%BE%B8%EA%B8%B0%22%EB%A5%BC%20%ED%86%B5%ED%95%B4%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%97%90%20%EC%9D%BC%EB%B6%80%20%EB%AC%B8%EC%9E%90%EB%A5%BC%20%EC%96%B4%EB%96%BB%EA%B2%8C%20%EC%B6%94%EA%B0%80%ED%95%A0%20%EC%88%98%20%EC%9E%88%EB%82%98%EC%9A%94%3F.png)
예를 들어 이라는 파일이 있습니다 . 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 표현식으로 평가되도록 오른쪽의 해석을 수정합니다.