Hatena::ブログ(Diary)

実験と娯楽

2012-04-03

ファイル名の一括置換

目的

ディレクトリ内のファイル名から数字だけを抜き出して、「数字.拡張子」にリネームしたい。

正規表現を扱えるリネームソフトを探してみたけど、後方参照できなかったりマルチバイト使えなかったりしてめんどい!

方針

Rubyで書くか・・・

解法
#rename.rb

path = ARGV[0]
Dir::glob(path.to_s + "*").each do |f|
  a = f.gsub(/(.+)\/.*?(\d+).*?\.(.+)$/u, '\1/\2.\3')
  File.rename(f, a)
  p f + " -> " + a
end
使用例
$ ruby rename.rb /path/to/dir/
#=> "/path/to/dir/あああ01あああ.jpg" -> "/path/to/dir/01.jpg"
感想

よろしいんじゃないでしょうか。

スパム対策のためのダミーです。もし見えても何も入力しないでください
ゲスト


画像認証

トラックバック - http://d.hatena.ne.jp/adda/20120403/1333466658