On Sun, Mar 2, 2008 at 4:52 AM, Junio C Hamano <gitster@xxxxxxxxx> wrote: > "Ping Yin" <pkufranky@xxxxxxxxx> writes: > > > > >> > + grep '^:160000\|:[0-9]\+ 160000' | > >> > >> This looks troublesome. > >> > >> - [0-9] is obviously wrong and [0-7] is what you meant; > >> - \| and \+ are not BRE but GNU. > >> > > man grep says > > In basic regular expressions the metacharacters ?, +, {, |, (, and ) > > lose their special meaning; instead use the backslashed versions \?, > > \+, \{, \|, \(, and \). > > > > Doen't it mean that '\|' is BRE ? > > It just says unlike in ERE, these characters are not special in BRE; it > does not at all say using backslash like \?, \+, and \| makes them so. > > And they are not. \(...\), \{m\}, \{m,\} and \{m,n\} are part of BRE, but > the two you used (\+ and \|) are not. GNU accept these two as extensions, > but other POSIX implementations may have troubles with them. > > http://www.opengroup.org/onlinepubs/000095399/basedefs/xbd_chap09.html > > Please be gentle to porters to non GNU systems. Either stay inside BRE > (which I think we have managed to do with our usage of grep) or explicitly > ask for ERE with "grep -E". > ok, 3x. -- Ping Yin -- To unsubscribe from this list: send the line "unsubscribe git" in the body of a message to majordomo@xxxxxxxxxxxxxxx More majordomo info at http://vger.kernel.org/majordomo-info.html