2011-10-17 3 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})のようなものを試しましたが、動作しませんでした。

実際(.*)以外のものを$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という2つの異なるバージョンがLinuxシステム上で広く見つかっており、構文も異なります。私はあなたの元のコマンドがまったく動作して以来、あなたがPerlを使っていると仮定します。つまり、Perl式を使って名前を変更することができます。詳細はperlreを参照してください。

0

残念ながら、Fedora(それは私のディストリビューションです)は名前の変更が無価値なバージョンです。

しかし、私はそれを交換ユーティリティのperl版で変更しました。

その後、CPAN getおよびuntarしたアーカイブとでそれを見つけることができます:

# ./Build installdeps 
# sudo ./Build install 

!それは元のfedoraの名前変更を置き換えます:binファイルとマニュアルですが、yumの再インストールによって元に戻すことができ、次のfedoraアップデートで元に戻すことができます また別にインストールするか、代替手段を使用できます。

+2

これはリンクのみの回答ではなく、ダウンロードできる場所を提供していますが、回答のテキストで説明しています。言葉遣いは特に明白ではありませんが、これをリンク専用の答えと呼ぶのは公正ではありません。 –

関連する問題