perl or sed s/// problem

David david at damnetwork.net
Thu Aug 5 10:44:05 MST 2010


I'm having a problem with perl *and* sed with a particular replace line.  The lines I'm trying to search for, and replace, both have "/" characters, which is completely killing me.   

line="password    requisite     /lib/security/$ISA/pam_cracklib.so retry=3"
newline="password required /lib/security/$ISA/pam_cracklib.so minlen=8 dcredit=-1 ucredit=-1 lcredit=0 minclass=3  retry=3"

I need to maintain whitespace, too.

perl -p -i -e s/"$line"/"$newline"/  file

That tosses out all kinds of errors, since perl believes the first "/lib" line to be the next delimiter.  Even using the magical \Q and \E things doesn't work.  AARRGGHH!!!   

Sed seems to have the same problem.   Anyone have any ideas on how I can get this to work?  And yes, unfortunately, I need to use the variables.

Thanks,
David


-- 
"I find your lack of faith disturbing."
--Darth Vader


More information about the PLUG-discuss mailing list