Perl - Replacing a file

July 2017




Issue


When I'm in my favorite shell, I carry replacements via:
perl -pi -e 's/lib\/nagios/lib64\/nagios/g' /etc/nagios/nrpe.cfg

I would like to reuse this replacement file, but use a script in Perl, not to run online
And I find it stupid to use a
system ( "perl -pi -e 's/lib\/nagios/lib64\/nagios/g' /etc/nagios/nrpe.cfg ")

how do I do, ideas?

Solution


You can use this :
$file = "/etc/nagios/nrpe.cfg";

open (FILE, "<$file");
@lines = <FILE>;
close FILE;
                
open (STDOUT, ">$file");    
for ( @lines ) {
    s+lib/nagios+lib64/nagios+g;
    print;
}

close STDOUT;

Note


Thanks to Dubcek for this tip.

Related


Published by aakai1056. Latest update on May 3, 2010 at 06:47 AM by aakai1056.
This document, titled "Perl - Replacing a file," is available under the Creative Commons license. Any copy, reuse, or modification of the content should be sufficiently credited to CCM (ccm.net).