rename files in ruby

April 15, 2015
Ruby

我有下面的文件:

/home/aries/Music/LuoJi/罗辑思维第三季第7期:统一是怎样炼成的_鸿新网www.hhxin.com整理.mp3
/home/aries/Music/LuoJi/罗辑思维第三季第4期:谁绑架了团结_鸿新网www.hhxin.com整理.mp3
/home/aries/Music/LuoJi/罗辑思维第三季第2期:大清帝国的生死时速_鸿新网www.hhxin.com整理.mp3
/home/aries/Music/LuoJi/罗辑思维第三季第6期:人类灭绝的一种可能_鸿新网www.hhxin.com整理.mp3
/home/aries/Music/LuoJi/罗辑思维第三季第3期:坏国王的遗产_鸿新网www.hhxin.com整理.mp3
/home/aries/Music/LuoJi/罗辑思维第三季第5期:秦始皇在隐瞒什么_鸿新网www.hhxin.com整理.mp3
/home/aries/Music/LuoJi/罗辑思维第三季第1期:大门口的野蛮人_鸿新网www.hhxin.com整理.mp3

我想要重命名这些文件,使文件名更明了,更方便在我的MP3上查看,所以,我写了如下简单的ruby脚本:

#!/usr/bin/ruby 

require "fileutils"

def ren(path) 
  Dir.glob("#{path}/*.mp3").each do |name| 
    process_file(name)
  end
end

def process_file(name) 
  filename = File.basename(name)
  filename =~ /(.*)(\d.*)_.*(\.mp3)/
  FileUtils.mv(name, File.join(File.dirname(name), $2 + $3))
end

ren("/home/aries/Music/LuoJi")

下面是重命名之后的结果:

/home/aries/Music/LuoJi/3期:坏国王的遗产.mp3
/home/aries/Music/LuoJi/4期:谁绑架了团结.mp3
/home/aries/Music/LuoJi/1期:大门口的野蛮人.mp3
/home/aries/Music/LuoJi/2期:大清帝国的生死时速.mp3
/home/aries/Music/LuoJi/7期:统一是怎样炼成的.mp3
/home/aries/Music/LuoJi/5期:秦始皇在隐瞒什么.mp3
/home/aries/Music/LuoJi/6期:人类灭绝的一种可能.mp3
comments powered by Disqus