2015/05/06

Ubuntu  rename を使ったファイル名の一括変換 2


前回 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までの任意の数字、または空白以外の記号一つ。
      - ^ ファイル名の先頭
      - $ ファイル名の最後
       選択子の例:ここの 1-1, 3-1

     量化子(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桁以上の数字
                          ここの 1-4, 3-3, 4-1, 5-1

     グループ化(Grouping)
      - ( ) グループ化記号 expr1 の中の文字列を一つのかたまりとみなす記号。
      - | 選択記号 文字列を選択する記号
              例 (desktop | laptop) desktop または laptop
(desktop | laptop | tabletPC) desktop または laptop または tabletPC
      - $n expr2でexpr1 の中のn番目のグループを指定する記号

       グループ化の例:ここの 3-3, 5-1


 参考

1. rename command
2. Bulk renaming files in Ubuntu
3. rename
4. Linux and Unix rename command
5. Perl 正規表現のクイックスタート
6. Perl 正規表現
7. 標準入出力

0 件のコメント :

コメントを投稿