Manipuler des chaines de caractères en bash

Si vous êtes amenés dans vos scripts à manipuler des chaines de caractères, voici comment faire.

Pour connaître la longueur d'une chaine utilisez cette syntaxe : "${#la_chaine}. Voic un exemple que vous pouvez saisir dans un terminal :

$ chaine="Bonjour"

$ echo $chaine

$echo ${chaine}

echo ${#chaine}

qui donnera bien "7".

Pour mettre la chaine en majuscule saisissez la commande :

$ echo ${chaine^^}

qui donne bien

$ BONJOUR

Pour mettre une chaine en minuscule saisissez les comamndes suivantes :

$ chaine=${chaine^^}  

notre chaine vaut maintenant "BONJOUR".

Puis :

$ echo ${chaine,,}

qui donnera bien "bonjour".

Remettons "bonjour" en minuscule via la commande :

$ chaine=${chaine,,}

Pour remplacer des caractères par d'autres on utilise la barre oblique. Pour dire "bonsoir" on va donc saisir la commande suivante :

$ echo ${chaine/jour/soir}

Attention à la différence des expressions rationnelles on ne met pas de barre oblique finale.

On peut extraire des caractères en donnant leur position et longueur. Exemple pour récupérer "jour" dans notre chaine :

$ echo ${chaine:3:4}

On commence à numéroter les caractères à partir de zéro.

Fait le 28/12/2017

Tags: