Appliquer une regex sur une variable

Résolu
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:

#!/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

  1. 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
    1. 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
      avi
      où
      BASH_REMATCH
      est un tableau, dont l'indice
      0
      contient la totalité de la regex, et les indices suivant, eux, contiennent ce qui est retenu entre les parenthèses.

      ça fonctionne si la
      S
      aison est toujours placée avant l'
      E
      pisode.

      NB: le
      >
      , c'est le prompt du terminal.
      1. 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
        1. salut,

          d'accord, mais comment, toi, tu reconnais les données à conserver ?