Opérations de base sur les chaînes de caractères

ShellShellBeginner
Pratiquer maintenant

💡 Ce tutoriel est traduit par l'IA à partir de la version anglaise. Pour voir la version originale, vous pouvez cliquer ici

Introduction

Dans ce laboratoire (lab), vous allez apprendre les opérations de base sur les chaînes de caractères en script shell. Les opérations sur les chaînes de caractères sont essentielles pour manipuler et extraire des données à partir de texte dans diverses tâches de scripting. Vous allez explorer des concepts tels que la détermination de la longueur d'une chaîne, la recherche de la position d'un caractère, l'extraction de sous-chaînes et le remplacement de parties de chaînes. Ces compétences sont cruciales pour un traitement efficace du texte dans les scripts shell.


Skills Graph

%%%%{init: {'theme':'neutral'}}%%%% flowchart RL shell(("Shell")) -.-> shell/BasicSyntaxandStructureGroup(["Basic Syntax and Structure"]) linux(("Linux")) -.-> linux/BasicFileOperationsGroup(["Basic File Operations"]) shell(("Shell")) -.-> shell/VariableHandlingGroup(["Variable Handling"]) shell(("Shell")) -.-> shell/AdvancedScriptingConceptsGroup(["Advanced Scripting Concepts"]) shell/BasicSyntaxandStructureGroup -.-> shell/shebang("Shebang") shell/BasicSyntaxandStructureGroup -.-> shell/comments("Comments") shell/BasicSyntaxandStructureGroup -.-> shell/quoting("Quoting Mechanisms") shell/VariableHandlingGroup -.-> shell/variables_decl("Variable Declaration") shell/VariableHandlingGroup -.-> shell/variables_usage("Variable Usage") shell/VariableHandlingGroup -.-> shell/str_manipulation("String Manipulation") linux/BasicFileOperationsGroup -.-> linux/touch("File Creating/Updating") shell/VariableHandlingGroup -.-> shell/param_expansion("Parameter Expansion") shell/AdvancedScriptingConceptsGroup -.-> shell/cmd_substitution("Command Substitution") subgraph Lab Skills shell/shebang -.-> lab-388814{{"Opérations de base sur les chaînes de caractères"}} shell/comments -.-> lab-388814{{"Opérations de base sur les chaînes de caractères"}} shell/quoting -.-> lab-388814{{"Opérations de base sur les chaînes de caractères"}} shell/variables_decl -.-> lab-388814{{"Opérations de base sur les chaînes de caractères"}} shell/variables_usage -.-> lab-388814{{"Opérations de base sur les chaînes de caractères"}} shell/str_manipulation -.-> lab-388814{{"Opérations de base sur les chaînes de caractères"}} linux/touch -.-> lab-388814{{"Opérations de base sur les chaînes de caractères"}} shell/param_expansion -.-> lab-388814{{"Opérations de base sur les chaînes de caractères"}} shell/cmd_substitution -.-> lab-388814{{"Opérations de base sur les chaînes de caractères"}} end

Création d'un fichier de script

Commençons par créer un fichier de script dans lequel nous écrirons nos opérations sur les chaînes de caractères.

  1. Ouvrez votre terminal dans le WebIDE. C'est dans le terminal que vous taperez les commandes pour interagir avec le système Linux.

  2. Accédez au répertoire du projet :

    cd ~/project

    Cette commande change votre répertoire actuel pour ~/project. Le symbole ~ représente votre répertoire personnel (home directory), donc ~/project est un dossier nommé "project" dans votre répertoire personnel.

  3. Créez un nouveau fichier nommé string_operations.sh :

    touch string_operations.sh

    La commande touch crée un nouveau fichier vide. Si le fichier existe déjà, elle met à jour l'horodatage du fichier.

  4. Ouvrez le fichier dans l'éditeur du WebIDE. Vous pouvez le faire en cliquant sur le nom du fichier dans l'explorateur de fichiers à gauche de votre WebIDE.

  5. Ajoutez la ligne de shebang suivante en haut du fichier pour spécifier l'interpréteur :

    #!/bin/bash

    Cette ligne, appelée "shebang", indique au système d'utiliser le shell Bash pour interpréter ce script. C'est toujours la première ligne d'un script shell.

Longueur d'une chaîne de caractères

Maintenant, apprenons à déterminer la longueur d'une chaîne de caractères.

  1. Ajoutez le code suivant à votre fichier string_operations.sh :

    echo "Step 2: String Length"
    
    STRING="Hello, World!"
    LENGTH=${#STRING}
    
    echo "The string is: $STRING"
    echo "Its length is: $LENGTH"

    Analysons ce code :

    • Nous définissons une variable STRING et lui assignons la valeur "Hello, World!".
    • ${#STRING} est une syntaxe spéciale qui calcule la longueur de la chaîne de caractères stockée dans la variable STRING.
    • Nous stockons cette longueur dans la variable LENGTH.
    • Enfin, nous affichons à la fois la chaîne de caractères et sa longueur.
  2. Enregistrez le fichier. Dans la plupart des éditeurs, vous pouvez le faire en appuyant sur Ctrl+S (ou Cmd+S sur Mac).

  3. Rendez le script exécutable :

    chmod +x string_operations.sh

    Cette commande change les permissions du fichier pour le rendre exécutable. chmod signifie "change mode" (changer le mode), et +x signifie "ajouter la permission d'exécution".

  4. Exécutez le script :

    ./string_operations.sh

    Le ./ indique au shell de chercher le script dans le répertoire actuel.

Vous devriez voir une sortie similaire à :

Step 2: String Length
The string is: Hello, World!
Its length is: 13

Si vous ne voyez pas cette sortie, vérifiez que vous avez enregistré le fichier et qu'il est exécutable.

Recherche de la position d'un caractère

Ensuite, nous allons apprendre à trouver la position d'un caractère dans une chaîne de caractères.

  1. Ajoutez le code suivant à votre fichier string_operations.sh :

    echo -e "\nStep 3: Finding Character Position"
    
    STRING="abcdefghijklmnopqrstuvwxyz"
    CHAR="j"
    
    POSITION=$(expr index "$STRING" "$CHAR")
    
    echo "The string is: $STRING"
    echo "We're looking for the character: $CHAR"
    echo "It is at position: $POSITION"

Voici ce que fait ce code :

  • Nous définissons une variable STRING contenant l'alphabet.
  • Nous définissons une variable CHAR avec le caractère que nous recherchons.
  • expr index "$STRING" "$CHAR" est une commande qui trouve la position de $CHAR dans $STRING.
  • Nous capturons la sortie de cette commande dans la variable POSITION en utilisant $().
  • Enfin, nous affichons les résultats.
  1. Enregistrez le fichier et exécutez le script à nouveau :

    ./string_operations.sh

Vous devriez voir une sortie supplémentaire similaire à :

Step 3: Finding Character Position
The string is: abcdefghijklmnopqrstuvwxyz
We're looking for the character: j
It is at position: 10

Notez que la position est indexée à partir de 1, ce qui signifie que le premier caractère est à la position 1, et non 0.

Extraction de sous-chaîne

Maintenant, apprenons à extraire une partie d'une chaîne de caractères.

  1. Ajoutez le code suivant à votre fichier string_operations.sh :

    echo -e "\nStep 4: Substring Extraction"
    
    STRING="The quick brown fox jumps over the lazy dog"
    START=10
    LENGTH=5
    
    SUBSTRING=${STRING:$START:$LENGTH}
    
    echo "The original string is: $STRING"
    echo "Extracting 5 characters starting from position 10:"
    echo "The substring is: $SUBSTRING"

    Analysons ce code :

    • Nous définissons une variable STRING avec une phrase d'exemple.
    • START est la position à partir de laquelle nous voulons commencer l'extraction (rappelez-vous, l'indexation commence à 0 ici).
    • LENGTH est le nombre de caractères que nous voulons extraire.
    • ${STRING:$START:$LENGTH} est la syntaxe pour extraire une sous-chaîne. Cela signifie "à partir de STRING, prendre LENGTH caractères à partir de la position START".
    • Nous stockons cette sous-chaîne dans la variable SUBSTRING puis nous affichons tout.
  2. Enregistrez le fichier et exécutez le script à nouveau :

    ./string_operations.sh

Vous devriez voir une sortie supplémentaire similaire à :

Step 4: Substring Extraction
The original string is: The quick brown fox jumps over the lazy dog
Extracting 5 characters starting from position 10:
The substring is: brown

Notez que contrairement à la commande expr index, les positions de caractères ici commencent à 0 et non à 1. C'est pourquoi nous obtenons "brown" en commençant à la position 10.

Remplacement de chaînes de caractères

Enfin, apprenons à remplacer des parties d'une chaîne de caractères.

  1. Ajoutez le code suivant à votre fichier string_operations.sh :

    echo -e "\nStep 5: String Replacement"
    
    STRING="The quick brown fox jumps over the lazy dog"
    echo "Original string: $STRING"
    
    ## Replace the first occurrence of 'o' with 'O'
    NEW_STRING=${STRING/o/O}
    echo "Replacing first 'o' with 'O': $NEW_STRING"
    
    ## Replace all occurrences of 'o' with 'O'
    NEW_STRING=${STRING//o/O}
    echo "Replacing all 'o' with 'O': $NEW_STRING"
    
    ## Replace 'quick' with 'slow' if it's at the beginning of the string
    NEW_STRING=${STRING/#quick/slow}
    echo "Replacing 'quick' with 'slow' at the beginning: $NEW_STRING"
    
    ## Replace 'dog' with 'cat' if it's at the end of the string
    NEW_STRING=${STRING/%dog/cat}
    echo "Replacing 'dog' with 'cat' at the end: $NEW_STRING"

    Ce code démontre diverses techniques de remplacement de chaînes de caractères :

    • ${STRING/o/O} remplace la première occurrence de 'o' par 'O'.
    • ${STRING//o/O} remplace toutes les occurrences de 'o' par 'O'.
    • ${STRING/#quick/slow} remplace 'quick' par 'slow', mais seulement si 'quick' se trouve au début de la chaîne.
    • ${STRING/%dog/cat} remplace 'dog' par 'cat', mais seulement si 'dog' se trouve à la fin de la chaîne.
  2. Enregistrez le fichier et exécutez le script à nouveau :

    ./string_operations.sh

Vous devriez voir une sortie supplémentaire similaire à :

Step 5: String Replacement
Original string: The quick brown fox jumps over the lazy dog
Replacing first 'o' with 'O': The quick brOwn fox jumps over the lazy dog
Replacing all 'o' with 'O': The quick brOwn fOx jumps Over the lazy dOg
Replacing 'quick' with 'slow' at the beginning: The quick brown fox jumps over the lazy dog
Replacing 'dog' with 'cat' at the end: The quick brown fox jumps over the lazy cat

Remarquez comment chaque opération de remplacement affecte la chaîne de caractères différemment.

Résumé

Dans ce laboratoire (lab), vous avez appris et pratiqué plusieurs opérations de base sur les chaînes de caractères en script shell :

  1. Création et exécution d'un script shell.
  2. Calcul de la longueur d'une chaîne de caractères.
  3. Recherche de la position d'un caractère dans une chaîne de caractères.
  4. Extraction d'une sous-chaîne à partir d'une chaîne plus longue.
  5. Exécution de diverses opérations de remplacement de chaînes de caractères.

Ces compétences constituent la base pour des tâches de traitement de texte plus complexes en script shell. Au fur et à mesure que vous continuerez à travailler avec des scripts shell, vous trouverez ces opérations sur les chaînes de caractères inestimables pour manipuler et analyser des données textuelles dans vos projets. N'oubliez pas que la pratique est la clé pour maîtriser ces concepts, alors n'hésitez pas à expérimenter avec différentes chaînes de caractères et opérations!