В Ruby есть множество операций, доступных с массивами:
a_ary = [1,2,3]
b_ary = [3,4,5]
a_ary & b_ary # => 3
Итак, из этого вы должны попробовать:
puts "loading the CSV files ..."
file1 = FasterCSV.read(fname1, :headers => :first_row)
file2 = FasterCSV.read(fname2, :headers => :first_row)
puts "CSV files loaded"
common_lines = file1 & file2
puts common_lines.size
Если вам нужно предварительно обработать массивы, делайте это при загрузкеих:
file1 = FasterCSV.read(fname1, :headers => :first_row).map{ |l| l.to_s.strip.gsub(/\s+/, '') }
file2 = FasterCSV.read(fname2, :headers => :first_row).map{ |l| l.to_s.strip.gsub(/\s+/, '') }