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 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 : > > actually, a+ means at least one 'a', b? means zero or one 'b'. > > > > On Wed, Jun 3, 2009 at 10:56 AM, hugo rivera 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 > >