Bash Basics Series #6 : Gestion des opérations sur les chaînes


  • Français


  • Dans la plupart des langages de programmation, vous trouverez un type de données chaîne. Une chaîne est essentiellement un groupe de caractères.

    Le shell Bash est cependant différent. Il n’y a pas de type de données séparé pour les chaînes. Tout est variable ici.

    Mais cela ne signifie pas que vous ne pouvez pas traiter les chaînes de la même manière que vous le faites en C et dans d’autres langages de programmation.

    Trouver des sous-chaînes, remplacer des sous-chaînes, joindre des chaînes et bien d’autres opérations sur les chaînes sont possibles dans le shell Bash.

    Dans cette partie de la série Bash Basics, vous apprendrez les manipulations de base des chaînes.

    Obtenir la longueur de la chaîne en bash

    Commençons par l’option la plus simple. Qui est d’obtenir la longueur d’une chaîne. C’est assez simple :

    ${#string}

    Utilisons-le dans un exemple.

    Exemple d'obtention de la longueur d'une chaîne dans bash

    Comme vous pouvez le voir, le deuxième exemple contenait deux mots mais comme il était entre virgules, il a été traité comme un seul mot. Même l’espace est compté comme un caractère.

    Joindre des chaînes dans bash

    Le terme technique est concaténation de chaînes et c’est l’une des opérations de chaîne les plus simples possibles en bash.

    Il vous suffit d’utiliser les variables de chaîne les unes après les autres comme ceci :

    str3=$str1$str2

    Est-ce que ça peut aller plus simple que ça ? Je ne pense pas.

    Voyons cela avec un exemple. Voici mon exemple de script nommé join.sh:

    #!/bin/bash
    
    read -p "Enter first string: " str1
    read -p "Enter second string: " str2
    
    joined=$str1$str2
    
    echo "The joined string is: $joined"

    Voici un exemple d’exécution de ce script :

    Joindre deux chaînes en bash

    Disons que vous avez une grosse chaîne avec plusieurs caractères et que vous voulez en extraire une partie.

    Pour extraire une sous-chaîne, vous devez spécifier la chaîne principale, la position de départ de la sous-chaîne et la longueur de la sous-chaîne de la manière suivante :

    ${string:$pos:$len}

    💡

    Comme les tableaux, le positionnement dans les chaînes commence également à 0.

    Voici un exemple :

    Extraction de sous-chaîne dans bash

    Même si vous spécifiez une longueur de sous-chaîne supérieure à la longueur de la chaîne, elle n’ira que jusqu’à la fin de la chaîne.

    Remplacer la sous-chaîne dans bash

    Disons que vous avez une grosse chaîne et que vous voulez en remplacer une partie par une autre chaîne.

    Dans ce cas, vous utilisez ce type de syntaxe :

    ${string/substr1/substr2}

    Seule la première occurrence d’une sous-chaîne est remplacée de cette façon. Si vous voulez remplacer toutes les occurrences, utilisez ${string//substr1/substr2}

    Voici un exemple :

    Remplacer la sous-chaîne dans bash

    Comme vous pouvez le voir ci-dessus, le mot bon a été remplacé par le meilleur. J’ai enregistré la chaîne remplacée dans la même chaîne pour changer l’original.

    💡

    Si la sous-chaîne n’est pas trouvée, rien n’est remplacé. Cela n’entraînera pas d’erreur.

    Supprimer la sous-chaîne dans bash

    Parlons de la suppression des sous-chaînes. Supposons que vous souhaitiez supprimer une partie d’une chaîne. Dans ce cas, fournissez simplement la sous-chaîne à la chaîne principale comme ceci :

    ${string/substring}

    Seule la première occurrence d’une sous-chaîne est supprimée de cette façon. Si vous souhaitez supprimer toutes les occurrences, utilisez ${string//substr}

    Si la sous-chaîne est trouvée, elle sera supprimée de la chaîne.

    Voyons cela avec un exemple.

    Supprimer la sous-chaîne dans bash

    Cela va sans dire que si la sous-chaîne n’est pas trouvée, elle n’est pas supprimée. Cela n’entraînera pas d’erreur.

    🏋️ Temps d’exercice

    Il est temps pour vous de pratiquer la manipulation des cordes avec des exercices simples.

    Exercice 1: Déclarez une chaîne ‘Je suis tout mouillé’. Changez maintenant cette chaîne en remplaçant le mot wet par set.

    Exercice 2: créez une chaîne qui enregistre les numéros de téléphone au format suivant 112-123-1234. Maintenant, vous devez supprimer tous -.

    Cela devrait vous donner une pratique décente avec des cordes en bash. Dans le chapitre suivant, vous apprendrez à utiliser les instructions if-else dans bash. Restez à l’écoute.

    Source

    Houssen Moshinaly

    Pour contacter personnellement le taulier :

    Laisser un commentaire

    Votre adresse e-mail ne sera pas publiée. Les champs obligatoires sont indiqués avec *

    Copy code