Sorry, I misunderstood your question in the first place. I think one example
can be good to show how ``?'' is useful somehow in grep.

Suppose I have a file, I want to find out a keyword ``produce'', but I know
that the word ``produced'' might also be the word that I am interested (stem
process in information retrieval or nlp). So I use the pattern "produced?"
to find all the words useful to me.

I hope this can be helpful at least a little bit. :-)

On Wed, Jun 3, 2009 at 4:11 PM, hugo rivera <[email protected]> wrote:

> you are right, but the original post read
>
> > grep 'a+bb?'
>
> so you get at least one 'a' and one or two 'b'.
>
> 2009/6/3 Wu JIANG <[email protected]>:
> > actually, a+ means at least one 'a', b? means zero or one 'b'.
> >
> > On Wed, Jun 3, 2009 at 10:56 AM, hugo rivera <[email protected]> wrote:
> >>
> >> Hello,
> >> I am experimenting with some regexp implementations (namely the one
> >> from "the practice of programming") and I am a little disoriented by
> >> the use of the '?' operator in plan 9's grep:
> >> say I have the following input
> >>
> >> aaaabbb
> >> ab
> >> aaaab
> >> bb
> >> b
> >> aaabb
> >> aaaa
> >>
> >> which I feed into grep with
> >>
> >> grep 'a+bb?'
> >>
> >> which should match at least one 'a' followed by one or two 'b'. So,
> >> grep's output is
> >>
> >> aaaabbb
> >> ab
> >> aaaab
> >> aaabb
> >>
> >> which really surprised me at first, since I wasn't expecting the first
> >> line. After some thought, I realized that the 'aaaab' and the 'aaaabb'
> >> patterns, contained in the first line of input, match the regexp, so
> >> grep prints the line.
> >> But then, how exactly the '?' operator is useful for grep? I was
> >> thinking that it was good to filter lines that contain more characters
> >> that desired, but it is not.
> >> Saludos
> >> --
> >> Hugo
> >>
> >
> >
>
>
>
> --
> Hugo
>
>

Reply via email to