So, as far as editing files in a subroutine of a script, there does not seem
to be an easier or more performant way?

Would it be performant to call the perl command as a subprocess, as in:

`perl -ni -e 'print unless /I'm a bad line, delete me\./' thefile`;


David

> Timothy Kimball wrote:
>
> David Blevins wrote:
> : There has to be a better way to modify/delete lines in a file than this.
>
> Time for a one-liner:
>
> perl -ni -e 'print unless /I'm a bad line, delete me\./' thefile
>
> -n loops through the lines of thefile, but doesn't print them
> unless you ask
>
> -i edits thefile in place
>
> -e means the next thing on the command line is a Perl script
>
> You can also do this in a script:
>
> #!/bin/perl -ni
> print unless /I'm a bad line, delete me\./;
>
> -i can also take a string as an argument which becomes the extension of
> the original file.  So if you say "perl -ni.bak -e '...' thefile",
> thefile will be edited, and the original will be saved in thefile.bak.
> I strongly recommend this because it's so easy to screw up an in-place
> edit.
>
> -- tdk
>

Reply via email to