ids = [] ids = File.readlines('gagallkd_new.csv').to_a.map{|line| line.chomp.split(/;/)} ids.shift dup_list = {} while line = ids.shift alloga_id = line[2] delete_list = [] ids.length.times do |i| if alloga_id == ids[i][2] dup_list[alloga_id] ||= [] dup_list[alloga_id] << ids[i] delete_list << i end end delete_list.reverse.each do |i| ids.delete_at(i) end if delete_list.length.nonzero? dup_list[alloga_id] << line end end require 'pp' #pp dup_list print dup_list.keys.sort.join("\n"), "\n"