Extraire la sous-chaîne en Bash
-
Utilisez la commande
cutpour extraire la sous-chaîne dans Bash - Utiliser l’extension de sous-chaîne pour extraire la sous-chaîne dans Bash
-
Utilisez
IFSpour extraire la sous-chaîne dans Bash
Ce tutoriel montre différentes manières d’extraire une sous-chaîne dans bash à l’aide de la commande cut, de l’expansion de la sous-chaîne et du séparateur de champs interne (IFS).
Utilisez la commande cut pour extraire la sous-chaîne dans Bash
Le script ci-dessous utilise la commande cut pour extraire une sous-chaîne. L’option -d spécifie le délimiteur à utiliser pour diviser la chaîne en champs et l’option -f définit le numéro du champ à extraire.
Dans notre cas, la chaîne est divisée en utilisant _ comme délimiteur, et pour accéder au troisième champ, nous passons l’argument 3 à l’option -f.
#!/bin/bash
printf "Script to extract a substring!\n\n"
numbers='one_two_three_four_five'
printf "full string: $numbers\n"
substring=$(echo $numbers | cut -d '_' -f 3)
printf "substring: $substring\n"
Exécutez le script bash comme suit.
bash substring.sh
De la sortie, une sous-chaîne two a été extraite de la chaîne one_two_three_four_five.
Script to extract a substring!
full string: one_two_three_four_five
substring: three
Utiliser l’extension de sous-chaîne pour extraire la sous-chaîne dans Bash
L’extension de sous-chaîne est une fonctionnalité bash intégrée. Il utilise la syntaxe suivante.
$(variable:offset:length)
La variable est le nom de la variable contenant la chaîne. Le offset permet de préciser la position à partir de laquelle commencer l’extraction d’une chaîne. La longueur permet de préciser la plage de caractères à extraire, hors offset.
Le script ci-dessous définit le nom de la variable sur numbers, le offset est défini sur 4 et la length de la chaîne à extraire est définie sur 3.
#!/bin/bash
printf "Script to extract a substring!\n\n"
numbers='one_two_three_four_five'
substring=${numbers:4:3}
printf "full string: $numbers\n"
printf "substring: $substring\n"
Exécutez le script bash comme suit.
bash substring.sh
De la sortie, une sous-chaîne two a été extraite de la chaîne one_two_three_four_five.
Script to extract a substring!
full string: one_two_three_four_five
substring: two
Utilisez IFS pour extraire la sous-chaîne dans Bash
IFS signifie Séparateur de Champs Interne. Le IFS est utilisé pour diviser les mots après expansion et pour diviser les lignes en mots avec la commande de lecture intégrée.
Dans le script ci-dessous, l’IFS a été défini sur _. Cela signifie qu’il doit diviser la chaîne dans la variable names en utilisant _ comme délimiteur. Une fois la chaîne découpée, nous pouvons accéder aux mots en utilisant la syntaxe $[integer]. Le premier mot est accessible par $1, le deuxième par $2, le troisième par $3, et ainsi de suite.
#!/bin/bash
printf "Script to extract a substring!\n\n"
numbers='one_two_three_four_five'
IFS="_"
set $numbers
printf "full string: $numbers\n"
printf "substring: $2\n"
Exécutez le script bash comme suit.
bash substring.sh
De la sortie, une sous-chaîne two a été extraite de la chaîne one_two_three_four_five.
Script to extract a substring!
full string: one_two_three_four_five
substring: two
