Manipulation des chaines

Cette leçon constitue une courte introduction à la manipulation des chaines de caractères. Pour la plupart des tâches de traitement du langage naturel, il est crucial de savoir comment manipuler les chaînes de caractères. Si vous souhaitez mettre la leçon en pratique, vous pouvez écrire et exécuter des programmes courts dans votre environnement de programmation favori

L’interpréteur bash propose des fonctionnalités internes intéressantes pour manipuler une chaîne de caractères conservée dans une variable. Appliquées à un tableau, elles permettent également de modifier tous ses éléments en une opération. Voici une petite présentation des plus courantes de ces fonctionnalités.

Table des manipulation des chaines

${#var}La longeur de la chaine var
${var%sub}Retire la plus courte sous chaine de la fin à sub
${var%%sub}Retire la plus longue sous chaine de la fin à sub
${var:pos}La sous chaine débutant à la pos jusqu’a la fin
${var:pos:len}La sous chaine débutant à la pos de longeur len
${var#*sub}Retire la plus courte sous chaine du début à sub
${var##*sub}Retire la plus longue sous chaine du début à sub
${var/sub/rep}Remplace la première occurence de sub par rep
${var//sub/rep}Remplace toutes occurence de sub par rep
${var,,}Converti toute la chaine en minuscule
${var,}Converti le 1er charatère en minuscule
${var,,A}Converti tous les A en minuscule
${var^^}Converti toute la chaine en majuscule
${var^}Converti le 1er charatère en majuscule
${var^a}Converti le 1er a en majuscule
${var^^[a,b]}Converti le tous les a et b en majuscule
${var/#sub/rep}Remplace sub par rep au début de la chaine
${var/%sub/rep}Remplace sub par rep à la fin de la chaine

Exemples

voici une manipulation des chaines

## En cosidérant que
chaine="Simplement Linux"

## La longeur de la chaine
echo ${#chaine}
16
Manipulation des chaines
## Sous chaine de la 10 position jusqu'a la fin
echo ${chaine:10} 
Linux

## Sous chaine de la position 0 de longeur 6
echo ${chaine:0:6} 
Simple

## Retire la plus courte chaine à partir du début (jusqu'au premier e)
echo ${chaine#*"e"};
ment Linux

## Retire la plus longue chaine à partir du début (jusqu'au dernier e)
echo ${chaine##*"e"};
nt Linux

## Transforme les voyelles en Majuscule
echo ${chaine^^[a,e,i,o,u,y]}
SImplEmEnt LInUx

En fonction

## Retire les charateres $2 de la chaine $1 au début et à la fin
function trim(){
    local string=$1
    local substr=$2
    string=${string/#${substr}/}
    string=${string/%${substr}/}
    echo $string;
}

## Prendre note des guillemets " qui encapsule la chaine 
## et des apostrophe ' qui font partie de la chaine
var="'C'est Simplement Linux'"
echo $var
'C'est Simplement Linux'

## Maintenant avec la fonction trim
## Prendre note que les paramètres doivent être encapsulés entre guillemets.
## Remarquez que seul les apostrophes du début et la fin on été retirés mais que 
## l'apostrophe du mot «c'est» ne l'est pas.
trim "${var}" "'"
C'est Simplement Linux

Pour conclure le tous qui d’entres vous utilise la manipulation des chaines sur une base régulière et selon vous quelle sont vos meilleure exemples ?

S’abonner
Notifier de
guest
0 Commentaires
Inline Feedbacks
View all comments