2011-10-17 5 views
2

/usr/bin/rename으로 이름을 바꾸려는 pdfs가 많습니다.regex를 사용하여/usr/bin/rename으로 여러 파일의 이름을 변경하십시오.

파일은 다음과 같은 패턴으로 지정됩니다

<rating> <a pretty long title> (<author> <year>).pdf 
e.g.: +++ The discovery of some very interesting stuff (Dude 1999).pdf 

rating: 1 to 5 '+' signs 
year: numerical 
그들은 다음과 같은 패턴으로 이름을 변경해야

:

<author>, <year> <rating> <a pretty long title>.pdf 
e.g.: Dude, 1999 +++ The discovery of some very interesting stuff.pdf 

내가 /usr/bin/rename를 사용하려고하고이 명령을 썼다 :

rename 's/(.*)\ (.*)\ \((.*)\ (.*)\).pdf/$3, $4 $1 $2.pdf/' *.pdf 

그러나 명령은 rating al 길에는 '+'기호가 포함되어 있고 연도는 항상 숫자입니다. 이것을 어떻게 할 수 있습니까? 내가 ([+]{1,5})([0-9]{4})과 같은 것을 시도했지만 작동하지 않았습니다.

rename은 실제로 (.*)이 아닌 다른 것을 변수 $1 ... $n의 입력으로 해석 할 수 있습니까?

도움 주셔서 감사합니다.

답변

4

이 나를 위해 잘 작동 :이 상황에서 잘못 될 일을 얘기하기 어렵다 있도록

rename 's/(\+{1,5}) (.*) \((.*) ([0-9]{4})\).pdf/$3, $4 $1 $2.pdf/' -- \ 
    'Dude, 1999 +++ The discovery of some very interesting stuff.pdf' 

이 ... 그러나 귀하의 질문에, 오류 메시지를 인용하지 않습니다.

경고와 마찬가지로, /usr/bin/rename의 두 가지 버전이 있으며 Linux 시스템에서 널리 사용되며 구문이 다릅니다. 그러나 원래 명령이 전혀 작동하지 않았기 때문에 Perl을 사용하고 있다고 가정합니다. 즉, Perl 표현식을 사용하여 이름을 수정할 수 있습니다. 자세한 내용은 perlre을 참조하십시오.

0

불행히도 Fedora (내 배포판)에는 쓸모없는 이름 바꾸기 버전이 있습니다.

하지만 대체 유틸리티 인 perl 버전에서 변경되었습니다.

당신은 CPAN에서 다음 가서 압축을 풉니 다 보관하고 찾을 수 있습니다

# ./Build installdeps 
# sudo ./Build install 

을! 이 작업은 원래의 fedora rename을 대체합니다. bin 파일과 매뉴얼이지만 yum 재설치로 되돌릴 수 있으며 다음 fedora 업데이트시 복귀 될 수 있습니다 또한 별도로 설치하거나 다른 방법을 사용할 수 있습니다.

+2

이것은 링크 전용 답변이 아닙니다. 다운로드 할 수있는 곳을 제공하지만 답안 텍스트에 설명되어 있습니다. 이 문구는 특별히 명확하거나 도움이되지는 않지만 링크 전용 답변이라고하는 것이 적절하지 않습니다. –

관련 문제