#!/usr/bin/ruby require 'fileutils' FileUtils.mkdir('backup') Dir.glob('*.emlx') do |filename| outfile = File.open(filename+'.temp', 'w') infile = File.open(filename, 'r') flags = false infile.each do |line| if flags flags = false number = line.scan(/\d+/)[0].to_i # now actually undelete it number &= ~0x02 # write out the modified line outfile.write "\t#{number}\n" else outfile.write line end if line =~ /\flags\<\/key\>/ flags = true end end outfile.close infile.close FileUtils.mv(filename, "backup/#{filename}") FileUtils.mv(filename+".temp", filename) end