#!/usr/bin/ruby re_sender = Regexp.new( 'From' ) re_day = Regexp.new( '(Sun|Mon|Tue|Wed|Thu|Fri|Sat)' ) messages = IO.readlines( ARGV[0] ) sender_lines = [] messages.each_index do |index| puts "looking at: #{ messages[index] }" if re_sender =~ messages[index] and re_day =~ messages[index] then sender_lines << index end end message_id = 0 filename = "message_#{ message_id }" sender_lines.each_index do |index| File.open( filename, "w" ) do |file| unless (index + 1) == sender_lines.length messages[sender_lines[index]..sender_lines[index+1]-1].each do |message_line| file.puts message_line end else messages[sender_lines[index]..messages.length-1].each do |message_line| file.puts message_line end end end message_id += 1 filename = "message_#{ message_id }" end