我有很多pdf要用/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
但是,该命令不会认为评级始终包含“+”符号,并且年份始终为数字。我怎样才能做到这一点?我尝试了类似([+]{1,5})
和([0-9]{4})
的内容,但它没有用。
rename
是否真的能够解释(.*)
以外的其他内容作为变量$1 ... $n
的输入?
感谢您的帮助!
答案 0 :(得分: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。
答案 1 :(得分:0)
不幸的是,Fedora(这是我的发行版)有一个毫无价值的重命名版本。
但是我已经为perl版本的replace实用程序更改了它。
您可以在CPAN找到它 得到和解压档案然后:
# ./Build installdeps
# sudo ./Build install
!!!它的动作取代原来的fedora重命名:bin文件和手册,但它可以通过yum重新安装恢复,并可能在下一个fedora更新时恢复 您也可以单独安装或使用替代品。