IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

Regexp sur chaine de caracteres : comment récupérer les valeurs ? (Bash 2.x)


Sujet :

Shell et commandes GNU

  1. #1
    Candidat au Club
    Inscrit en
    Juin 2009
    Messages
    3
    Détails du profil
    Informations forums :
    Inscription : Juin 2009
    Messages : 3
    Points : 2
    Points
    2
    Par défaut Regexp sur chaine de caracteres : comment récupérer les valeurs ? (Bash 2.x)
    j'ai une chaine type "abc-1d2f34-ab1cd2ef43-34-14.12.txt"
    et je veux récupérer le bout de chaine 'abc' d'une part, 1234 d'autre part, etc ...

    J'ai réussi avec l'opérande '=~' mais malheureusement, la machine sur laquelle je dois executer le script n'a pas bash 3 !!

    J'ai regardé du cotéde sed, grep, awk, mais je ne vois pas comment faire ça ...

    avec "=~" ça donnait quelque chose comme ça :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
     
    if [[ $string =~ ^abc-([^-]*)-[^-]*-([^-]*)-([0-9]*).*$ ]]; then
          i=1
          n=${#BASH_REMATCH[*]}
          while [[ $i -lt $n ]]
          do
            data[$i]=`echo ${BASH_REMATCH[$i]}`
            let i++
          done
    fi
    Une idée ?

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 594
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 594
    Points : 19 471
    Points
    19 471
    Par défaut
    comme ça ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    string="abc-1d2f34-ab1cd2ef43-34-14.12.txt"
    sed 's/\(^[a-z]\{3\}\)-\([0-9]\)[a-z]\?\([0-9]\)[a-z]\?\([0-9]\)[a-z]\?\([0-9]\)-.*/\1\n\2\3\4\5/' <<<"$string"
    abc
    1234

Discussions similaires

  1. Gridview: Comment récupérer les valeurs des deux clés?
    Par Thomas_Laurent dans le forum ASP.NET
    Réponses: 1
    Dernier message: 02/02/2007, 14h54
  2. Réponses: 2
    Dernier message: 11/12/2006, 12h38
  3. Formulaire & Confirm : Comment récupérer les valeurs en javascript ?
    Par dark_vidor dans le forum Général JavaScript
    Réponses: 4
    Dernier message: 24/11/2006, 18h21
  4. Réponses: 4
    Dernier message: 13/11/2006, 17h49
  5. Réponses: 11
    Dernier message: 19/06/2006, 13h51

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo