Zsh a un opérateur spécifique pour retirer des fichiers particuliers: ~
Par exemple: print -l **/*~*.c va lister tout les fichiers, sauf les .c.
Attention, le premier * est un opérateur de globbing et signifie « tous les fichiers d'un répertoire », mais le second * est un opérateur d'expression régulière Zsh et correspond à « n'importe quelle chaine ».
Donc pour lister tous les fichiers et retirer uniquement les .c du répertoire courant, il faut une expression régulière qui refuse les \: print -l **/*.c~[^/]#.c
Pour retirer une liste de fichiers spécifiques, il faut enchaîner les ~: print -l **/*.c~aaa.c~bbb.c~ccc.c
[^] # Re: C'est bon j'ai trouvé
Posté par calandoa . En réponse au message Soustraire une liste de fichier à une autre liste. Évalué à 2.
Zsh a un opérateur spécifique pour retirer des fichiers particuliers:
~Par exemple:
print -l **/*~*.cva lister tout les fichiers, sauf les.c.Attention, le premier
*est un opérateur de globbing et signifie « tous les fichiers d'un répertoire », mais le second*est un opérateur d'expression régulière Zsh et correspond à « n'importe quelle chaine ».Donc pour lister tous les fichiers et retirer uniquement les
.cdu répertoire courant, il faut une expression régulière qui refuse les\:print -l **/*.c~[^/]#.cPour retirer une liste de fichiers spécifiques, il faut enchaîner les
~:print -l **/*.c~aaa.c~bbb.c~ccc.cBien sûr, n'oubliez pas:
setopt extendedglob