66 votes

Liste des fichiers ne correspondant pas à un modèle ?

Voici comment répertorier tous les fichiers correspondant à un modèle dans bash :

 ls *.jar

Comment lister le complément d'un motif ? c'est-à-dire que tous les fichiers ne correspondent pas à *.jar?

84voto

Christian Points 191

Utilisez la correspondance de motifs étendue de style egrep.

 ls !(*.jar)

Ceci est disponible à partir de bash-2.02-alpha1. Doit d'abord être activé avec

 shopt -s extglob

Depuis bash-4.1-alpha, il existe une option de configuration pour l'activer par défaut.

62voto

ls | grep -v '\.jar$'

par exemple.

37voto

ccarton Points 467

Règle d'expansion bash peu connue :

 ls !(*.jar)

18voto

stefanct Points 55

POSIX définit des expressions entre crochets qui ne correspondent pas, nous pouvons donc laisser le shell développer les noms de fichiers pour nous.

 ls *[!j][!a][!r]

Cela a cependant quelques bizarreries, mais au moins il est compatible avec à peu près n'importe quel shell Unix.

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X