On Mon, 03 Dec 2012 11:16:37 +0100 j. v. d. hoff wrote:
> On Mon, 03 Dec 2012 03:04:45 +0100, Clark WANG <[email protected]> wrote:

> > On Mon, Dec 3, 2012 at 3:37 AM, j. v. d. hoff  
> > <[email protected]>wrote:
> >
> >> hi,
> >>
> >> I'm currently trying to set up a `ksh' script as a drop in replacement  
> >> for
> >> `awk' in processing some text. I've stumbled over the following.
> >> consider this  string:
> >>
> >> a="water: h~2~^o^ and ammonia: NH~3~"
> >>
> >> where I want to replace the `~' enclosed text parts by something else,
> >> maintaining the enclosed text. I've tried
> >>
> >> echo "${a/~(-g:~(*)~)/#\1#}"
> >>
> >> to replace the first hit in the line by `h#2#'
> >>
> >> but this does not work (neither does the same with backquoted `~').
> >>
> >> what am I missing? something to do with tilde expansion?
> >>
> >
> > [STEP 100] $ echo ${.sh.version}
> > Version AJMP 93u+ 2012-08-01
> > [STEP 101] $ a="water: h~2~^o^ and ammonia: NH~3~"
> > [STEP 102] $ echo "${a/@-(~@(*)~)/#\2#}"
> > water: h#2#^o^ and ammonia: NH~3~
> > [STEP 103] $ echo "${a//@-(~@(*)~)/#\2#}"
> > water: h#2#^o^ and ammonia: NH#3#
> > [STEP 104] $

> thanks a lot, that's exactly what I need. I'll use that one. I'm more at  
> home with standard regex, so I don't quite understand what the pattern is  
> doing: especially
> the leading `-' in front of the "core pattern". what does  
> `-(pattern-list)' mean? I see it makes the pattern non-greedy, but I don't  
> find it in the manpage (or the book).

${a//~*([^~])~/#\1#}

> but regarding my own, failed, attempt at a solution: why is

> echo "${a//~(-g:~(*)~)/#\1#}"

> _not_ doing the intended? if I read the manpage correctly, it should. and

> echo "${a//~(-g:^(*)^)/#\1#}"

> indeed _does_ replace the `^' characters enclosing the `o' in the example  
> string $a. only after your answer I've tried

> echo "${a//~(-g:~@(*)~)/#\1#}"

> why do I need the "exactly one" `@' qualifier for `(*)' here (and in your  
> solution) when the enclosing characters are `~' (but not, e.g., `^')?

> I suspect it has something to do with the `~' being special but I don't  
> see why and how.

~ is special when it precedes (...)

> j.

> >
> >>
> >> thanks
> >> joerg
> >> --
> >> Using Opera's revolutionary email client: http://www.opera.com/mail/
> >> ______________________________**_________________
> >> ast-users mailing list
> >> [email protected].**com <[email protected]>
> >> http://lists.research.att.com/**mailman/listinfo/ast-users<http://lists.research.att.com/mailman/listinfo/ast-users>
> >>

> -- 
> Using Opera's revolutionary email client: http://www.opera.com/mail/
> _______________________________________________
> ast-users mailing list
> [email protected]
> http://lists.research.att.com/mailman/listinfo/ast-users

_______________________________________________
ast-users mailing list
[email protected]
http://lists.research.att.com/mailman/listinfo/ast-users

Reply via email to