On Wed, Mar 16, 2011 at 07:56:41PM +0000, Joseph L. Casale wrote:
I am trying to deduce the one liner for an rpm I am packaging to edit a php configuration file from within my spec. The line I am editing looks like:
$conf['nagios_base'] = "/nagios/cgi-bin";
What are the escape requirements Perl needs from within the shell to search for this?
As I have seen, the syntax is a mess, any pointers would be appreciated!
Go easy on yourself, and : a) don't try to match the quotation marks verbatim. Instead, match them with simply a . b) use parenthesis to 'remember' a pattern that you don't want to have to specify again.
E.g. to replace the path on the right-hand-side, do this: (i replaced it with a /; you could of course replace it with whatever you want)
perl -i -ne 's/(^\s*$conf[.nagios_base.] = )./nagios/cgi-bin.;/$1 "/";/; print;' phpConfigFileName
E.g. to delete the line outright: perl -i -ne 'print unless /^\s*$conf[.nagios_base.] = ./nagios/cgi-bin.;/;' phpConfigFileName
Cheers,
Jon