批理删除文件名部分

Sunday, October 5th, 2008

require ‘find’
require ‘FileUtils’
Find.find(’./’) do |path|
if path =~ /.*?.mp3/
path.sub!(/\.\//, ”)
change=path.sub(/REO_Speedwagon_-_The_Essential_Reo_Speedwagon_\[CD[12]\]_-_/, ”)
FileUtils.mv “#{path}”, “#{change}”
end
end
#puts Dir.glob(’*.mp3′)

下载了The_Essential_Reo_Speedwagon,觉得文件名太长了,还是改改好。其实这直接用shell改就好。
PS:ruby里使用大递归文件glob并在结果数组上迭代,加载所有文件和目录至内存。这样使用大量内存。所以用Find模块的find方法更好。
P.p.S:把这段代码保存存在migrate下的文件夹里,拿来搜索迁移表也不错,不用每次都grep
require ‘find’
require ‘FileUtils’
paths = gets.chomp
Find.find(’./’) do |path|
puts path if path =~ /.*?#{paths}/
end
gets

Tags:

Posted in Uncategorized | No Comments »>