Zsh Mailing List Archive
Messages sorted by: Reverse Date, Date, Thread, Author

negative pattern doesn't match empty string in globbing?



On Friday, 19 September 2014, Han Pingtian <hanpt@xxxxxxxxxxxxxxxxxx
<javascript:_e(%7B%7D,'cvml','hanpt@xxxxxxxxxxxxxxxxxx');>> wrote:
> Hello,
>
> I just notice that negative pattern like this doesn't work:
>
>     localhost% setopt extendedglob
>     localhost% print /usr/**/bin/zsh
>     /usr/bin/zsh /usr/local/bin/zsh

>     localhost% print /usr/^local/bin/zsh
>     zsh: no matches found: /usr/^local/bin/zsh
>     localhost% ls /usr//bin/zsh
>     /usr//bin/zsh
>     localhost%
>
> I think if "^local" can match with empty string, then this should work.
> But looks like it doesn't.

Please excuse formatting,  I'm writing this on my phone at a
bus stop, or at least trying.  (I'm now half way to Truro and
on the third browser...)

Negative patterns are confusing, I've discovered over the years.
The way to think of them is "match anything but..."
In other words, first match something, and only then decide
what to exclude.

In this case,  the initial  "match anything" matches files in the directory
you've reached. Obviously there is no empty file. So the overall match fails
at that point.

Phew...  time to hit send...

pws


Messages sorted by: Reverse Date, Date, Thread, Author