Delete line from file

> Jules wrote:
>> And given an array of line numbers, what is the best way to delete
>> these lines from a file?
> lines = IO.readlines('junk1')
> [1,3,5].each{|n| lines.slice!(n) }

That's going to have a side-effect problem:

irb(main):004:0> a = %w{ a b c d e f }
=> ["a", "b", "c", "d", "e", "f"]
irb(main):005:0> [1,3,5].each {|e| a.slice!(e) }
=> [1, 3, 5]
irb(main):006:0> a
=> ["a", "c", "d", "f"]

You'd probably want to reverse the list of indices.

Or perhaps:
  irb(main):001:0> a = %w{a b c d e f }
  => ["a", "b", "c", "d", "e", "f"]
  irb(main):002:0> [1,3,5].each{ |e| a[e] = nil }
  => [1, 3, 5]
  irb(main):003:0> a.compact
  => ["a", "c", "e"]

Remembering, of course, that the 1st line is the 0th line number.

···

From: dblack@wobblini.net

On Wed, 3 Jan 2007, William James wrote: