コーディング > ファイル名を一括変換

renameコマンドが甚だしく便利だ。


  • この階層の拡張子 .htm のファイルの .htm を.html に置換する

$ rename 's/.htm/.html/' *.htm

  • この階層のすべてのファイルの先頭に文字「20070610-」を加える

$ rename 's/^/20070610-/' *

  • この階層のすべてのファイルの大文字アルファベットを小文字に変換する

$ rename 'y/A-Z/a-z/' *

  • 先頭の3文字を削除

$ rename 's/^.{3}//' *

  • 先頭の空白文字以外の3文字を削除

$ rename 's/^([^\s]){3}//' *

  • 再帰的に

$ rename some other `find . -name some`


参考

ファイル名を一括変更するには(renameコマンド) - Ubuntu Japanese Wiki>>https://wiki.ubuntulinux.jp/UbuntuTips/FileHandling/RenameCommand


使えそうな正規表現

  • ^
    行の先頭に一致
  • $
    行の末尾に一致
  • .
    すべての1文字に一致
  • (character)*
    1回以上の文字列characterの出現に一致
  • (character)?
    0回か1回の文字列characterの出現に一致
  • [abcdef]
    []内の文字のどれかに一致.[a-z]のような記述も可
  • [^abcdef]
    []内にない文字のどれかに一致
  • (expression)
    グループ演算子
  • (character){m,n}
    文字列characterのm回からn回の繰り返しに一致
  • (character){m,}
    文字列characterのm回以上の繰り返しに一致
  • (character){,n}
    文字列characterのn回以内(0回を含む)の繰り返しに一致
  • (character){n}
    文字列characterのn回の繰り返しに一致
  • \1,\2,...\n
    後方参照用演算子.n 番目の括弧にマッチした文字列に一致
  • expression1\|expression2
    or
  • \w
    1単語に一致.半角英数字と“_”
  • \W
    単語以外に一致
  • \s
    空白文字に一致.スペース、タブ、改行
  • \S
    空白文字以外に一致
  • \d
    数字に一致.[0-9]と同義
  • \D
    数字以外に一致


 

 

最終更新:2012年06月06日 06:46