Обработка файлов с использованием кода существенно отличается от того, что мы делаем, когда мы, например, редактируем файл в текстовом редакторе.Операции с файлами, предлагаемые операционными системами, в этом отношении весьма ограничены (по многочисленным, частично историческим причинам - например, магнитным лентам).
Короче говоря, вам, вероятно, следует создать другой файл и записать в него данные (Майк предоставил коддля этого), или загрузите весь файл в память (что может быть плохой идеей, если ваш файл огромен) и перезапишите его обработанными данными.
Просто для практики, вот как вы можете на самом деле редактировать файл на месте.Как видите, не самое красивое зрелище:
File.open('foo', 'r+') do |file|
write_pos = 0
file.each do |line|
word = line.chomp.split(',').first
read_pos = file.pos
file.pos = write_pos
file.puts word
write_pos = file.pos
file.pos = read_pos
end
file.truncate write_pos
end