juillet
2011
On peut manipuler très facilement les chaînes de caractères en shell.
Il est par exemple très simple de faire un substring !
1. Couper une chaîne sur une distance donnée
Nous avons une chaîne « aaa-bbb-ccc » et nous voulons récupérer la sous-chaîne « a-bbb-c ».
Cette sous-chaîne commence à l’index 2. C’est le 3e caractères et le premier index est 0.
La longueur de la sous-chaîne sera de 7 caractères.
$ echo ${string}
<span style="color:#777;">aaa-bbb-ccc</span>
$ echo ${string:2:7}
<span style="color:#777;">a-bbb-c</span>
2. Couper la chaîne avant un caractère donné
Nous avons une chaîne « aaa-bbb-ccc » et nous voulons récupérer les sous-chaînes de :
- tout ce qu’il y a avant la première occurrence du caractère « -« , soit « aaa »
- tout ce qu’il y a avant la dernière occurrence du caractère « -« , soit « aaa-bbb »
$ echo ${string%%-*}
<span style="color:#777;">aaa</span>
$ echo ${string%-*}
<span style="color:#777;">aaa-bbb</span>
3. Couper la chaîne après un caractère donné
Nous avons une chaîne « aaa-bbb-ccc » et nous voulons récupérer les sous-chaînes de :
- tout ce qu’il y a après la première occurrence du caractère « -« , soit « bbb-ccc »
- tout ce qu’il y a après la dernière occurrence du caractère « -« , soit « ccc »
$ echo ${string#*-}
<span style="color:#777;">bbb-ccc</span>
$ echo ${string##*-}
<span style="color:#777;">ccc</span>
En espérant que ça puisse vous aider,
Thomas.