2017-09-29 12 views
0

の文字で(いくつかの)数字を置き換える:正規表現は、私はファイルのリストを持っている名前

file1_1.pdf file1_2.pdf file1_3.pdf 

しかし、私は彼らが私はどのように私は文字を置き換えることができます不思議

file1_a.pdf file1_b.pdf file1_c.pdf 

として名前を変更したいですファイル名の数字の場合(標準的なregexpに依存するrename perlスクリプトを使用します)。残念ながらtrは助けにはならない。なぜなら、私はそれが欲しくないところの数字を代用するからだ。

答えて

2

あなたはこのような何かを試みることができる:置換演算子にeオプションは、小文字の文字に数字を変換s///eオペレータの詳細についてはperlopを確認するために使用される

rename 's/_\K(\d+)(?=.pdf$)/chr ((ord "a") + $1 - 1)/e' *.pdf 
  • 数字の前にあるアンダースコアを削除しないようにするには、ゼロ幅のlookbehindアサーション\Kを使用します(詳細はperlreを参照)。
  • 数字の後ろにある.pdfエクステントの削除を避けるため、ゼロ幅の正の先読みアサーションを使用します(perlreも参照)。
関連する問題