On Thu, Dec 13, 2012 at 8:58 PM, Dan Douglas <orm...@gmail.com> wrote:
> So, +(??) actually matches strings with even length, while +(???) matches > those with odd length. +(?) matches any string with at least one character, > and any number of ?'s matches multiples of that length. > > $ ksh -c 'printf %R\\n \?' > ^.$ > $ ksh -c 'printf %R\\n "+(?)"' > ^(.)+$ > $ ksh -c 'printf %R\\n "+(??)"' > ^(..)+$ > > -- > Dan Douglas > > +(???) matches lengths that are multiples of 3, not all odd-length files. ?+(??) would match odd-length files. For the original question, you would want /@(??) or simply /??, since there's no need for extglob for that.