2009/9/17 erik quanstrom <[email protected]>:
> i don't think you need an extra () for the leading
> white space. just tack it on in with the leading expression.
see below
> the hoc is unnecessary. just start with 2.
true :)
> fn buildre {
> re = 's:^([ ]*'
> for(i in `{seq 2 $1})
> re = $re ^ '[^ ]+[ ]+'
> re = $re ^ ')([^ ]+):\1' ^ $2:
> }
>
> ; buildre 1 hell
> ; whatis re
> re='s:^([ ]*)([^ ]+):\1hell:'
already here is a problem:
1) I am to save the leading space --- so it shouldn't be an argument to s.
2) only the 2nd () --- the word with no spaces in itself --- is to be changed
... since the spaces are to be preserved, none of them should be an
argument to the s command, I think. That's why it was treated
seperately by me.
Anyway, what do you think about that problem with the empty group? Why
linux is ok with it while plan 9 is not? Is there any reason? Is that
a bug in plan9 sed?
Thanks
Ruda
> ; buildre 2 hell
> ; whatis re
> re='s:^([ ]*[^ ]+[ ]+)([^ ]+):\1hell:'
>
> - erik
>
>