in reply to How to remove lines out of an ascii file

You can't actually remove stuff from a file.
What you need to do instead is copy the contents from the old file to a new one (except for the stuff you don't want copied), and then replace the original with the new version.
See How do I change one line in a file/delete a line in a file/insert a line in the middle of a file/append to the beginning of a file? for more details.
  • Comment on Re: How to remove lines out of an ascii file

Replies are listed 'Best First'.
Re: Re: How to remove lines out of an ascii file
by tommyw (Hermit) on Sep 19, 2001 at 17:28 UTC

    Of course, in light of the other responses, I suspect that I've been misled by your use of "remove": you just want to skip the irrelevant lines.

    Which actually raises the question of whether you're interested in the header lines:

    New file :
    CPN     Quantity        MPN     Vendor  
    
    which lie between the first an second section (you may well be, since these will allow you to spot the fact that you are indeed changing section).

    However, if you're only interested in the data lines

    51-0597-000     15      06035C103MAT2A  AVX themselves 
    then:
    while (<INFILE>) { next unless /^(\d{2}-\d{4}-\d{3})\s+(\d+)\s+(\S+)\s+(\S+)$/; # Not only have we thrown out the garbage, # but the data fields are now in $1..$4 ... more processing ... }
    will skip all the non-data lines, as well as breaking the string apart into its constituent fields (you can obviously taylor the regexp to your precise needs, if you need to break out the middle component of the first field, for example).