![정규식을 사용하여 파일 이름을 바꿀 때 Perl 이름 바꾸기가 중단됩니다.](https://linux55.com/image/117666/%EC%A0%95%EA%B7%9C%EC%8B%9D%EC%9D%84%20%EC%82%AC%EC%9A%A9%ED%95%98%EC%97%AC%20%ED%8C%8C%EC%9D%BC%20%EC%9D%B4%EB%A6%84%EC%9D%84%20%EB%B0%94%EA%BF%80%20%EB%95%8C%20Perl%20%EC%9D%B4%EB%A6%84%20%EB%B0%94%EA%BE%B8%EA%B8%B0%EA%B0%80%20%EC%A4%91%EB%8B%A8%EB%90%A9%EB%8B%88%EB%8B%A4..png)
perl-rename
Arch Linux에서 정규식을 기반으로 여러 파일의 이름을 바꾸려고 합니다 . 내 폴더에는 다음 형식을 따르는 파일이 많이 있습니다.
Title of File [Year] - quality.filetype
"연도"는 4자리 숫자이고, 화질은 720p, 1080p, DVD 등 중 하나, 파일 형식은 mp4, mkv 등 중 하나가 가능합니다.
다음 형식을 따르도록 파일 이름을 바꾸려고 합니다.
[Year] Title of File (quality).filetype
파일의 관련 부분과 일치하도록 이 정규식을 개발했습니다.
/(.+) \[(\d{4})\](?: - (.+)\.+)*/
몇 가지 연구 끝에 이름을 바꾸기 위해 다음 명령을 개발했습니다( -n
작동할 것으로 확인되면 제거하겠습니다).
perl-rename -n 's/(.+) \[(\d{4})\](?: - (.+)\.+)*/[$2] $1 ($3)./'
이 명령을 실행하면 perl-rename은 아무것도 인쇄하지 않고 종료되지 않습니다. 누구든지 오류를 찾는 데 도움을 줄 수 있습니까?
답변1
이름을 바꿀 파일을 지정하지 않았습니다. 명령 끝에 별표를 추가했습니다.
perl-rename -n 's/(.+) \[(\d{4})\](?: - (.+)\.+)*/[$2] $1 ($3)./' *
또한 캡처 그룹을 참조하는 방식이 올바르지 않습니다. 캡처 그룹은 \1
, \2
등 대신 $1
, $2
등 으로 참조됩니다. 작업 표현식은 다음과 같습니다.
perl-rename -n 's/(.+) \[(\d{4})\](?: - (.+)\.+)*/[\2] \1 (\3)./' *