comment annuler correctement les expressions de globbing zsh?


18

Je veux lister tous les fichiers sauf ceux se terminant par owp: j'ai donc essayé:

  ls -l *.(^owp)
  zsh: unknown sort specifier
  ls -l *(^owp) 
  zsh: unknown sort specifier
  ls -l *[^o][^w][^p] # does not work either, missing some files

aucun n'a fonctionné. Comment est-ce que je fais cela correctement? Mon .zshrc a "set extendedglob".

Réponses:


27

Essayez soit:

ls -l ^*.owp

(c'est-à-dire correspondre à tout sauf au motif *.owp)

ou:

ls -l *~*.owp

(c'est-à-dire correspondre à tout ce qui correspond au modèle *mais ne correspond pas *.owp)

Voir man zshexpn=> FILENAME GENERATION=> Glob Operatorspour en savoir plus.


Les ()modèles glob sont ajoutés aux qualificatifs glob, tandis que vous voulez un opérateur glob.

Qu'est *.(^owp)- ce que c'est:

  1. Correspond à tous les noms de fichiers se terminant par un point
  2. s'ils ne sont pas des tuyaux (^p), et
  3. trier les correspondances (o)par " w" => "spécificateur de tri inconnu"

Voir man zshexpn=> FILENAME GENERATION=> Glob Qualifierspour en savoir plus.


1
^ *. owp a fait le travail. whooa, pour quoi *. (^ owp) fait vraiment :)
math

9
Pour tous ceux qui ne peuvent pas faire fonctionner cela, vous devez définir l' extendedgloboption dans Zsh.
DBedrenko

7
@DBedrenko: merci! NB: fait viasetopt extendedglob
Thomas M

1
j'ai trouvé cela utile comme résumé rapide pour toute personne intéressée par les qualificatifs glob.
Wardw
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.