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.