On Mar 22, 9:15 am, "Leslie Viljoen" <leslievilj... / gmail.com> wrote:
> You could change your lines into an array of lines and then remove the
> lines that match:
>
> lines = []
> File.new("text.txt").read.each_line {|line|  lines << line }
> lines.delete_if {|line| line =~ /\/usr\/local\/lib/}

Leslie, as a public service announcement, you should be aware of
IO.readlines:

C:\>qri IO.readlines
----------------------------------------------------------
IO::readlines
     IO.readlines(name, sep_string=$/)   => array
------------------------------------------------------------------------
     Reads the entire file specified by _name_ as individual lines,
and
     returns those lines in an array. Lines are separated by
     _sep_string_.

        a = IO.readlines("testfile")
        a[0]   #=> "This is line one\n"


For that matter, you should also be aware of IO.read:
---------------------------------------------------------------
IO::read
     IO.read(name, [length [, offset]] )   => string
------------------------------------------------------------------------
     Opens the file, optionally seeks to the given offset, then
returns
     _length_ bytes (defaulting to the rest of the file). +read+
ensures
     the file is closed before returning.

        IO.read("testfile")           #=> "This is line one\nThis is
line two\nThis is line three\nAnd so on...\n"
        IO.read("testfile", 20)       #=> "This is line one\nThi"
        IO.read("testfile", 20, 10)   #=> "ne one\nThis is line "

You should also be aware of the block form of #open, which opens the
IO object and then closes it when done.

What you wrote creates a new File object and opens it, but never
closes it. I'm not really sure what badness can result from this, but
I gather it's not a good idea.