Martin Costello wrote: > > Hello, Hello,
> I'm trying to do a search and replace on a file (specifically the word > transformC). A cut down version of the file is below: > > blahblah -blah blah > -blah blah -blah $blah -blah "Ground" > -c "blah transformC" transformC; > > blahblah > -af transformC "blah" ($blah) > -af AtransformC "blah" ($blah) > -af transformC_2 "blah" ($blah) > > a pattern like this seems to take care of this: > $line =~ s/([\s"])transformC([\W|\D])/$1TRANSC$2/g; > > giving > > blahblah -blah blah > -blah blah -blah $blah -blah "Ground" > -c "blah TRANSC" TRANSC; > > blahblah > -af TRANSC "blah" ($blah) > -af AtransformC "blah" ($blah) > -af transformC_2 "blah" ($blah) > > however I want a pattern that will NOT change "blah transformC", but > will still replace transformC; "transformC" transformC Here is one way to do it: $ perl -e' $text = q/ blahblah -blah blah -blah blah -blah $blah -blah "Ground" -c "blah transformC" transformC; blahblah -af transformC "blah" ($blah) -af AtransformC "blah" ($blah) -af transformC_2 "blah" ($blah) /; $text =~ s/("[^"]+"|\w+)/ $1 eq q(transformC) ? q(TRANSC) : $1 eq q("transformC") ? q("TRANSC") : $1 /eg; print "$text\n"; ' blahblah -blah blah -blah blah -blah $blah -blah "Ground" -c "blah transformC" TRANSC; blahblah -af TRANSC "blah" ($blah) -af AtransformC "blah" ($blah) -af transformC_2 "blah" ($blah) John -- use Perl; program fulfillment -- To unsubscribe, e-mail: [EMAIL PROTECTED] For additional commands, e-mail: [EMAIL PROTECTED]