Ruby

ファイル名を一括置換するRubyスクリプト

More than 5 years have passed since last update.

やりたいこと

カレントディレクトリにあるファイル名を置換します。

方法

ファイル名をDir.globで得て、String#gsubで置き換えて、FileUtils.mvで変更します。

以下では、カレントディレクトリにある1.html, 2.html, ... 10.html, ... 100.htmlのようなファイル名を、頭に0を付けて001.html, 002.html, ... 010.html, ..., 100.htmlに置換しています。

rename.rb
require 'fileutils'

Dir.glob("*.html") do |filename|
  newname = filename.gsub(/^(\d+)/, sprintf("%03d", $1.to_i))
  FileUtils.mv(filename, newname)
end