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.
4 réponses
-
presque.
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_REMATCH
est un tableau, dont l'indice0
contient la totalité de la regex, et les indices suivant, eux, contiennent ce qui est retenu entre les parenthèses.
ça fonctionne si laS
aison est toujours placée avant l'E
pisode.
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 -
là, tu demandes à ce qu'il y ait quatre chiffres après chaque lettre : {2} + {2}. :/
c'est vrai j'avias pas vu, probleme se copier coller.
Sinon merci c'est parfait.
C'est marrant, je découvre bash et je trouve que certaine syntaxe ressemble au C.
Merci et à bientot