On Wednesday 16 September 2009 21:49:14 Newbie407 wrote:
> I'm new to Grep.  I'm using Text Wrangler.
>
> I want to search an entire doc for a pattern.  If I find that pattern, I
> want to do a search and replace within the pattern, then keep looking for
> the pattern again.
>
> Specifically, I'm looking for the letters "LEC" followed by variable text
> and ending with either a carriage return or the letters "ulty."  If I find
> it, I want to change all the space characters within the found string into
> something else, say "zzzz."
>
> I can figure out how to find the pattern, and I can figure out how to make
> the replacement, but I can't figure out how to do it within the pattern
> only.

Grep can't do replacements. To do what you want, you need a tool like sed, awk 
or perl. Although you did not specify what you mean by "variable text" 
following "LEC" (or at least it's an ambiguous definition), I think the 
following perl code might do:

perl -ne 'print if s/(LEC.*?(?:ulty|$))/($a=$1)=~s,\s,zzzz,g;$a/ge'

Note that due to the ambiguous problem statement you provided, the above code 
might also turn out to be wrong for you.



Reply via email to