前回 rename を使ったファイル名の一括変換の例を書いた。その時にいくつかの renameコマンドについて書かれたHPを参考にさせていただいたが,変換規則で利用するperl言語の正規表現まで踏み込んで書かれたHPは見つけられなかった。そこで renameコマンドについてと、renameコマンドでよく使われるであろうperl言語の正規表現についてを含めてまとめておいた。ただし、ファイル名の変換規則ではperl言語を利用できるが,ここではperl言語の文法については今回は触れていない。perl言語を使用した例は前回書いてあるので,そちらを参考にしていただきたい。
書式: rename [ -option ] 'perlexpr' [ files ]
option
option は指定しなくてもよい。指定する場合には以下の3通りがある。
-v | リネームしたファイル名を表示する。 |
-n | リネーム後の名前を表示のみする。 |
-f | リネームを実行し,ファイル名が重複する場合には元からあるファイルを上書きする。 |
files
files は指定しなくてもよい。
指定する場合には変換したいファイル名を書く。ファイル名にはワイルドカードが使える。
例えば
*.txt | フォルダ内のすべてのファイル |
file.* | フォルダ内で同じファイル名で拡張子がことなるファイル。。 |
*.* | フォルダ内のすべてのファイル。(単に * だけでもよい。) |
ファイル名を指定しない場合には標準入力 (キーボード) からの入力待ちになる。
この場合,ファイル名にワイルドカードは使えない。
入力は renameコマンドを入力した後,(ここで入力待ちになる。)
1. 変換したいファイル名が一つの場合
1-1 ファイル名を入力して、
1-2 エンターキー「⏎」をおす。
1-3 「ctrl」と「D」を同時におす。
2. 変換したいファイルが複数ある場合
2-1 ファイル名を入力して、
2-2 エンターキー「⏎」をおす。
2-3 2-1, 2-1 をファイルの数だけ繰り返す。
2-4 「ctrl」と「D」を同時におす。
perlexpr
Perlexpr の書式 (変換の仕方を perl言語の正規表現に従って記す。)(s|y)/expr1/[expr2]/[Modifier]
(s|y)
s か y のどちらか一方を指定しなければならない。単語や数字などの
文字を変換したい場合には y 、 | 例:ここの 1-5 |
文字列を変換したい場合には s | 例:ここの 1-1, 1-2 |
expr1
変換したい単語や数字などの文字列,または文字を指定する。
expr2
変換後に示されるべき単語や数字などの文字列,または文字を指定する。
expr2 は指定しなくてもよい。指定しない時は expr1 の内容を削除する。(例:ここの 2-1)
Modifier
Modifier は指定しなくてもよい。Modifier には以下の3通りがある。
e | perl言語を使用する | 例:ここの 1-4, 4-1 |
g | expr1 で指定した内容を繰り返し変換する | 例:ここの 1-3, 1-4 |
i | 大文字、小文字の区別をしない |
expr1, expr2 で使用できる表現 (正規表現)
文字
- メタ文字; \, ^, ., $, |, (, ), [, ], ?, *, +
後述の選択子、量化子、グループ化で使用する特別な文字
- アルファベットや数字、記号とそれらを組み合わせた文字列
ただし、メタ文字を記号として使用する場合には
\\, \^, \., \$, \|, \(, \), \[, \], \?, \*, \+
と記す。
文字の例:ここの 1-1, 1-2, 3-2
選択子 (selector)
- [ ] の中の1文字
例 | [aD3] | a または D または 3 |
[a-h] | a から h までの1文字 | |
[0-5] | 0 から 5 までの数字 | |
[^c-j] | c から j まで以外の1文字 |
- \d | 0から9までの任意の数字 |
- \w | アルファベット1文字、 0から9までの任意の数字、またはアンダーバー "_" |
- . | アルファベット1文字、 0から9までの任意の数字、または空白以外の記号一つ。 |
- ^ | ファイル名の先頭 |
- $ | ファイル名の最後 |
量化子(quantifier)
- {m,n} | m文字以上n文字以下 |
- {m,} | m文字以上 |
- {,n} | n文字以下 |
- {n} | n文字 |
- ? | 1文字または0文字 ({0,1} と同じ意味) |
- * | 0文字以上 ({0,} と同じ意味) |
- + | 1文字以上 ({1,} と同じ意味) |
量化子の例 | \w{5} | 5文字以下の文字列 |
\d{3} | 3桁の数字 | |
\d{+} | 1桁以上の数字 |
グループ化(Grouping)
- ( ) | グループ化記号 | expr1 の中の文字列を一つのかたまりとみなす記号。 |
- | | 選択記号 | 文字列を選択する記号 |
例 | (desktop | laptop) | desktop または laptop |
(desktop | laptop | tabletPC) | desktop または laptop または tabletPC |
- $n | expr2でexpr1 の中のn番目のグループを指定する記号 |
グループ化の例:ここの 3-3, 5-1
参考
1. rename command2. Bulk renaming files in Ubuntu
3. rename
4. Linux and Unix rename command
5. Perl 正規表現のクイックスタート
6. Perl 正規表現
7. 標準入出力
0 件のコメント :
コメントを投稿