Appliquer une regex sur une variable
Résolu
lamouette
-
lamouette -
lamouette -
Bonjour à tous,
je souhaiterais extraire une parti d'une chaine stocké dans une variable via une regex, mais j'ignore la syntaxe à utiliser.
Par exemple:
j'aimerai pouvoir recupérer uniquement S01 et E03 ainsi que sont extention .avi sachant que les chiffres changeront.
Je pourrais par exemple avoir mon.super.fichier.S04E11.blabla.mpeg ou autre.
Merci à vous.
je souhaiterais extraire une parti d'une chaine stocké dans une variable via une regex, mais j'ignore la syntaxe à utiliser.
Par exemple:
#!/bin/bash nom=mon.super.fichier.S01E03.blabla.avi
j'aimerai pouvoir recupérer uniquement S01 et E03 ainsi que sont extention .avi sachant que les chiffres changeront.
Je pourrais par exemple avoir mon.super.fichier.S04E11.blabla.mpeg ou autre.
Merci à vous.
A voir également:
- Appliquer une regex sur une variable
- Nommez une application d'appel vidéo ou de visioconférence - Guide
- Comment supprimer une application préinstallée sur android - Guide
- Desinstaller une application sur windows - Guide
- Comment installer une application sur samsung sans play store - Guide
- Comment désinstaller complètement une application sur android - Guide
4 réponses
presque.
là, tu demandes à ce qu'il y ait quatre chiffres après chaque lettre : {2} + {2}. :/
soit
en bash :
ça fonctionne si la
NB: le
là, tu demandes à ce qu'il y ait quatre chiffres après chaque lettre : {2} + {2}. :/
soit
> nom='mon.super.fichier.S01E03.blabla.avi'
en bash :
> rgx=".*([Ss][0-9][1-9]).*([Ee][0-9][1-9]).*\.(.*)" > [[ $nom =~ $rgx ]] && printf '%s\n' "${BASH_REMATCH[@]}" mon.super.fichier.S01E03.blabla.avi S01 E03 avioù
BASH_REMATCHest un tableau, dont l'indice
0contient la totalité de la regex, et les indices suivant, eux, contiennent ce qui est retenu entre les parenthèses.
ça fonctionne si la
Saison est toujours placée avant l'
Episode.
NB: le
>, c'est le prompt du terminal.
bonjour lapiel et bien je voudrais juste pouvoir récupérer le bout de chaîne aillant le format S02 soit la lettre S suivi d'un chiffre de 0 à 9 et d'un autre chiffre de 1 à 9 idem pour E11 peu importe leur emplacement dans la chaîne. Se qui dans une regex pourrais donner ça:
[Ss][0-9]{2}[1-9]{2}
[Ee][0-9]{2}[1-9]{2}
Comment donc faire pour ne récupérer que ce qui correspond à la regex dans une variable?
Pour l’extension j'ai résolu le problème grâce à la commande cut
[Ss][0-9]{2}[1-9]{2}
[Ee][0-9]{2}[1-9]{2}
Comment donc faire pour ne récupérer que ce qui correspond à la regex dans une variable?
Pour l’extension j'ai résolu le problème grâce à la commande cut