Linux-コマンドrenameの名前変更

1952 ワード

名前の変更といえば、私と同じLinux初心者の多くが考えているのはmvだと思います.簡単な名前の変更はもちろんmvで十分ですが、複雑な名前の変更(例えば、正則的な名前の変更)にはもっと使いやすいツールが必要です.それはrenameです.

使用法

$ rename [options] [perlexpr] [files]

options

-v           
-n            ,        
-f        ,  
-e           code,    -e,           code

perlexpr


これはPerl式で、ファイル名はその中で変更されるべきで、Perlを学んだことがなくても大丈夫で、このコマンドの使う文法はsedに似ていて、使いやすいです.

files


名前変更が必要なファイル


最も命令を把握しやすい方法は、試してみることです.次に、いくつかの例を見てみましょう.
ファイル拡張子の削除
たとえば、ファイル拡張子.bakのファイル拡張子を削除したい場合は、
$ rename 's/\.bak$//' *.bak
*.bakはワイルドカードでshellによって各ファイル名に展開されます
ファイル名のスペースを削除
$ rename 's/ //g' *
gはglobalの意味で、すべてのスペースを空白文字に置き換えます(つまり削除しました)
ファイル名を小文字に変換
$ rename 'y/A-Z/a-z/' *

ここではyという意味で使われていますが、前後の2つの文字セットが対応していて、前の文字セット(A-Z)の中の文字に出会ったら、後ろの文字セット(a-z)の中の対応する文字に変えます.
グループ化の使用
現在、ファイルの山があります.彼らのファイル名パターンはこのような -haha- .fileです.現在、中間の-haha-を削除し、第1の部分の文字列と第2の部分の文字列を調整します.
$ rename 's/(.*)-haha-(.*)(.file)/$2$1$3/' *.file

グループについて知らないと、正規表現を補うことができます.