On Tue, 2003-01-14 at 20:50, Cameron Simpson wrote:
> On 11:01 14 Jan 2003, Bret Hughes <[EMAIL PROTECTED]> wrote:
> | On Mon, 2003-01-13 at 13:18, Samuel Flory wrote:
> | > [EMAIL PROTECTED] wrote:
> | > >or try:
> | > >:g/abdfggg/s//opsmsdd/g from vi/vim
> | > 
> | > That's really the hard way.
> | > :%s/abdfggg/opsmsdd/g  works just as well and makes more sense.
> | 
> | This is the vi syntax I am familier with.  What is the first  example
> | doing?
> 
> It's a lesser known syntax, but valid all the way back to e and ed.
> 
> It separates selection from operation. It says, "globally, for all lines
> containing abdfggg, substitute that (// being 'that') with opsmsdd".
> 
> You can do more flexible things, like:
> 
>       g/foo/ .-2,.+2m0
>       or
>       g/bah/ s/this/that/g
> 


Thanks Cameron,

If I understand correctly, your last example says for the entire file
look for lines that have bah, and if they do, subsitute all occurances
of this with that

Am I close?  this is more flexible than trying to build a regex that
would do the same thing in the syntax I have used in the past.  I never
have sucessfully atomized letter combinations so I can use ? as a
conditional.  At least I don't think I have but I remember trying.

I remember trying something like (from memory only)

%s/({bah.*}?)(this)({.*bah}?)/$1that$3/g

I gave up when mozilla locked up with about 5 tabs open to various web
pages about regexes.  I figured it was a sign.  I don't remember what I
did instead probably  a very inefficent perl script that at least let me
do the logic step by step. 

the g/foo/ one I am going to have to read up on before beginning to ask
a question about it :) 

Bret



-- 
redhat-list mailing list
unsubscribe mailto:[EMAIL PROTECTED]?subject=unsubscribe
https://listman.redhat.com/mailman/listinfo/redhat-list

Reply via email to