세 자리 숫자와 공백 및 다른 확장자를 추가하는 터미널을 통해 디렉토리의 파일 이름 바꾸기

세 자리 숫자와 공백 및 다른 확장자를 추가하는 터미널을 통해 디렉토리의 파일 이름 바꾸기

ls다음과 같은 명령을 통해 표시되는 디렉터리에 파일 목록이 있습니다 .

01-Campout 2001.jpg
2-Campout 2001.png
Campout 2001 - 3 of 21.tiff
Campout 2001 - 4.pdf

Campout과 2001 사이의 공백을 포함하도록 후속 텍스트를 유지하면서 현재 번호 매기기를 제거하고 처음에 세 자리 수를 갖는 명명 규칙으로 바꾸는 데 사용할 수 있는 bash 명령이 무엇인지 궁금합니다. .jpeg 및 .png 파일이 혼합되어 있습니다.

나는 최종 결과가 다음과 같기를 원합니다.

001-Campout 2001.jpg
002-Campout 2001.png
003-Campout 2001.tiff
004-Campout 2001.pdf

매우 감사합니다

답변1

그리고 zsh:

$ autoload -Uz zmv # best in ~/.zshrc
$ zmv -n '((<1-999>)-(*)|(*) - (<->) of <->(.*)|(*) - (<->)(.*))' '${(l[3][0])${:-$2$5$8}}-$3$4$6$7$9'
mv -- '01-Campout 2001.jpg' '001-Campout 2001.jpg'
mv -- '2-Campout 2001.png' '002-Campout 2001.png'
mv -- 'Campout 2001 - 3 of 21.tiff' '003-Campout 2001.tiff'
mv -- 'Campout 2001 - 4.pdf' '004-Campout 2001.pdf'

( -n만족스러우면 제거하세요(모의 실행의 경우)).

관련 정보