#1 Le 15/01/2014, à 20:15
- DonutMan75
[RESOLU] Utiliser une regexp dans ls
Bonjour,
comment puis-je utiliser une regexp dans ls ?
Par exemple, si je veux afficher uniquement les fichiers d'extension mp3 ou ogg :
ls "*(mp3|ogg)"
Merci d'avance
Donut
Dernière modification par DonutMan75 (Le 15/01/2014, à 20:34)
Hors ligne
#2 Le 15/01/2014, à 20:27
- pingouinux
Re : [RESOLU] Utiliser une regexp dans ls
Bonsoir,
shopt -s extglob
ls *.@(mp3|ogg)
Hors ligne
#3 Le 15/01/2014, à 20:34
- DonutMan75
Re : [RESOLU] Utiliser une regexp dans ls
Super,
merci beaucoup
Bonne soirée,
Donut
Hors ligne
#4 Le 16/01/2014, à 02:33
- aduxas
Re : [RESOLU] Utiliser une regexp dans ls
Sans activer extglob:
ls *{mp3,ogg}
Hors ligne
#5 Le 16/01/2014, à 18:01
- DonutMan75
Re : [RESOLU] Utiliser une regexp dans ls
Bonjour aduxas,
merci pour ta réponse
Bon, il faut que je me fasse une petite note.. Je connais les rudiments des regexp mais dans bash le comportement est différent...
De la même façon '*' signifie "une ou plusieurs occurrences du caractère précedent" alors que dans ls, ça signifie "n'importe quelle chaîne de caractère (potentiellement vide)"...
Hors ligne
#6 Le 16/01/2014, à 18:10
- Postmortem
Re : [RESOLU] Utiliser une regexp dans ls
Salut,
En fait, dans bash, ce ne sont pas des regexp qui sont utilisées (enfin, on peut les utiliser aussi), mais en général, ce sont des "pattern" qui sont utilisés.
Mot' a dit : « Un Hellfest sans Slayer, c'est comme une galette-saucisse sans saucisse ! »
Hors ligne
#7 Le 17/01/2014, à 05:33
- aduxas
Re : [RESOLU] Utiliser une regexp dans ls
Oui, dans regexp * veut dire "n'importe combien d'instances du caractère précédent". Dans bash, pour une commande qui prend comme argument une liste de fichiers, * est un joker et peut représenter tout nom ou partie de nom de fichier.
Les accolades enferment une liste de noms partiels, chacun à combiner avec le reste du pattern. La liste peut inclure un élément nul, p.e.
diff fichier{,.bak}
est équivalent à
diff fichier fichier.bak
et
ls *{mp3,ogg}
à
ls *mp3 *ogg
Ce ne sont pas des regexp.
Dernière modification par aduxas (Le 17/01/2014, à 05:34)
Hors ligne