Хотя Guffa прав в том, что разрывы строк в заголовке возможны, но это не так уж и обычно, поэтому, если вы можете игнорировать этот крайний случай, вы можете использовать:
File.open('new.csv', 'w+') do |outf|
File.open('original.csv') do |inf|
inf.each_line.with_index do |line, i|
outf.write line unless i==0
end
end
end
Если это слишком медленнодля вас, дайте мне знать, и мы перепишем это, чтобы использовать чтение блоков вместо того, чтобы фактически анализировать весь файл.