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:
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 ?