On Dec 11, George Georgalis said:
>On Thu, Dec 11, 2003 at 09:05:20AM -0500, Jeff 'japhy' Pinyan wrote:
>>On Dec 10, George Georgalis said:
>>
>>>giving my perl a retry, I found some hints on a website to recursively
>>>replace text
>>>
>>>perl -p -i -e 's/old\(.\)atext/new\1btext/g;' $( find ./ -name '*.html' -o -name
>>>'*.txt' )
>>
>>This isn't recursively replacing text; it's recursively going through a
>>directory tree.
>>
>>>but from what I can tell, perl doesn't support the \1 for \(*\) symbols
>>>like sed does. What is the work around?
>>
>>Because Perl is not sed. Perl uses (...), not \(...\) for its memory
>>capturing. In Perl's regexes, all non-alphanumeric metacharacters don't
>>use backslashes. That means [...] for character classes, not \[...\], and
>>+ for " 1 or more", not \+, and so on.
>
>that's what I needed to hear... however replacing text (with memory
>capturing) is still a problem:
>
>perl -p -i -e 's/451(.)8229/331\12027/g;' $( find ./ -type f -name '*.html' -o -name
>'*.txt' )
Right; first of all, \1 should only be used IN the regex ITSELF. Outside
of the regex, you should use $1. However, "331$12027" still isn't
appropriate; you'll need "331${1}2027". The reason "331\12027" gave you
"331P27" is because octal character 120 is "P".
--
Jeff "japhy" Pinyan [EMAIL PROTECTED] http://www.pobox.com/~japhy/
RPI Acacia brother #734 http://www.perlmonks.org/ http://www.cpan.org/
<stu> what does y/// stand for? <tenderpuss> why, yansliterate of course.
[ I'm looking for programming work. If you like my work, let me know. ]
--
To unsubscribe, e-mail: [EMAIL PROTECTED]
For additional commands, e-mail: [EMAIL PROTECTED]
<http://learn.perl.org/> <http://learn.perl.org/first-response>