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
만족스러우면 제거하세요(모의 실행의 경우)).