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 :
Une idée ?
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
Partager