How to edit each line of a file in ruby, without using a temp file

Hi,

Is there a way to edit each line in a file, without involving 2 files? Say, the original file has,

test01 test02 test03

I want to edit it like test01,a test02,a test03,a

Tried something like this, but it replaces some of the characters. File.open('mytest.csv', 'r+') do |file|       file.each_line do |line|
          file.seek(-line.length, IO::SEEK_CUR)           file.puts 'a'
      end end

Writing it to a temporary file and then replace the original file works, However, I need to edit the file quite often and therefore prefer to do it within the file itself .Any pointers are appreciated.

You can stash the data in an array, manipulate it there, and then write it back to the file store after. Ignore the HEREDOC parts of this, and substitute your file read/write bits, and this should work:

foo = <<EOF one two three EOF bar = foo.each_line do |line|   bar.push (line.strip + ',a') end foo = bar.join("\n") puts foo

Walter

Walter Davis wrote in post #1078369: