zsh-users
 help / color / mirror / code / Atom feed
* Exclusion on filename expansion
@ 2014-12-07 18:50 ` Vin Shelton
  2014-12-07 19:01   ` Peter Stephenson
  2014-12-07 19:02   ` Bart Schaefer
  0 siblings, 2 replies; 4+ messages in thread
From: Vin Shelton @ 2014-12-07 18:50 UTC (permalink / raw)
  To: zsh-users

[-- Attachment #1: Type: text/plain, Size: 406 bytes --]

Using a variable, I cannot get ~ exclusion to work:

setopt extended_glob
mkdir foo
cd foo
touch abc def ghi jkl
ls *~abc~def
  ==> ghi jkl
pat="abc~def"
ls -d *~$pat
  ==> abc  def  ghi  jkl

I think that expansion of $pat is happening after globbing, so in this case
"*" expands to

abc def ghi jkl

without the application of the tilde exclusion.

Is there something I can do about this?

Thanks,
  Vin

^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Exclusion on filename expansion
  2014-12-07 18:50 ` Exclusion on filename expansion Vin Shelton
@ 2014-12-07 19:01   ` Peter Stephenson
  2014-12-07 19:17     ` Vin Shelton
  2014-12-07 19:02   ` Bart Schaefer
  1 sibling, 1 reply; 4+ messages in thread
From: Peter Stephenson @ 2014-12-07 19:01 UTC (permalink / raw)
  To: zsh-users

Vin Shelton wrote:
> Using a variable, I cannot get ~ exclusion to work:
>
> ls *~abc~def
>   ==> ghi jkl
> pat="abc~def"
> ls -d *~$pat
>   ==> abc  def  ghi  jkl
> 
> I think that expansion of $pat is happening after globbing, so in this case
> "*" expands to
> 
> abc def ghi jkl
> 
> without the application of the tilde exclusion.
> 
> Is there something I can do about this?

"setopt glob_subst", or probably better use $~pat which turns on
glob_subst for that expansion.  The "~" may appear to be an obvious
mnemonic, but actually it was originally introduced to do the more
standard form of ~-expansion.  It now turns on that and glob expansion.

pws


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Exclusion on filename expansion
  2014-12-07 18:50 ` Exclusion on filename expansion Vin Shelton
  2014-12-07 19:01   ` Peter Stephenson
@ 2014-12-07 19:02   ` Bart Schaefer
  1 sibling, 0 replies; 4+ messages in thread
From: Bart Schaefer @ 2014-12-07 19:02 UTC (permalink / raw)
  To: zsh-users

On Dec 7,  1:50pm, Vin Shelton wrote:
}
} pat="abc~def"
} ls -d *~$pat
}   ==> abc  def  ghi  jkl
} 
} I think that expansion of $pat is happening after globbing

No, but the expansion of $pat is not a pattern unless you make it one.

ls -d *~${~pat}

(the braces are optional in zsh default emulation, used here for clarity).


^ permalink raw reply	[flat|nested] 4+ messages in thread

* Re: Exclusion on filename expansion
  2014-12-07 19:01   ` Peter Stephenson
@ 2014-12-07 19:17     ` Vin Shelton
  0 siblings, 0 replies; 4+ messages in thread
From: Vin Shelton @ 2014-12-07 19:17 UTC (permalink / raw)
  To: Peter Stephenson; +Cc: zsh-users

[-- Attachment #1: Type: text/plain, Size: 830 bytes --]

Thank you, Peter and Bart.

  - Vin

On Sun, Dec 7, 2014 at 2:01 PM, Peter Stephenson <
p.w.stephenson@ntlworld.com> wrote:

> Vin Shelton wrote:
> > Using a variable, I cannot get ~ exclusion to work:
> >
> > ls *~abc~def
> >   ==> ghi jkl
> > pat="abc~def"
> > ls -d *~$pat
> >   ==> abc  def  ghi  jkl
> >
> > I think that expansion of $pat is happening after globbing, so in this
> case
> > "*" expands to
> >
> > abc def ghi jkl
> >
> > without the application of the tilde exclusion.
> >
> > Is there something I can do about this?
>
> "setopt glob_subst", or probably better use $~pat which turns on
> glob_subst for that expansion.  The "~" may appear to be an obvious
> mnemonic, but actually it was originally introduced to do the more
> standard form of ~-expansion.  It now turns on that and glob expansion.
>
> pws
>

^ permalink raw reply	[flat|nested] 4+ messages in thread

end of thread, other threads:[~2014-12-07 19:17 UTC | newest]

Thread overview: 4+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
     [not found] <acs@alumni.princeton.edu>
2014-12-07 18:50 ` Exclusion on filename expansion Vin Shelton
2014-12-07 19:01   ` Peter Stephenson
2014-12-07 19:17     ` Vin Shelton
2014-12-07 19:02   ` Bart Schaefer

Code repositories for project(s) associated with this public inbox

	https://git.vuxu.org/mirror/zsh/

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for NNTP newsgroup(s).