[shell] extraction de nombre d'une chaîne

Bonjour,

Je cherche à extraire des nombres d'une chaîne de caractère. Je m'explique :

j'ai une chaîne comme ceci dans une variable var:

< mot-12345 blablablabla
< mot-154 blablablablabla blablabla blablabla
<mot-6543 blabla


Je voudrais récupérer les nombres qui suivent mot-

j'ai essayé avec une solution en sed mais je suis pas douée et ça a rirn donné ><' .
Ma solution echo $var | sed -n "s/.*mot-\([^]*\).*/\1/p"

Est-ce que quelqu'un a une idée ?

Merci pour votre aide !

3 réponses

  • Votes
  • Date
  • Date décroissante
  1. Modérateur
    Re-

    Si c'est les seuls nombres de la chaine :

     egrep -o '[[:digit:]]*'

    devrait suffire ;-))
    1. En fait j'ai réussi :

      tmp=$(echo "$var"|cut -d"-" -f2)
      nombres=$(echo "$tmp"|cut -d" " -f1)
      1. Contributeur
        echo $var | tr "-" " "|cut -f 2
        ou :
        echo $var | cut -d "-" -f 2 |cut -f 1