sorted = my_list.map {|i| [ i.split(/\|/)[2,4],i ]}. sort. map { |i| i[-1] }