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 ?