Extraire la sous-chaîne en Bash
-
Utilisez la commande
cut
pour extraire la sous-chaîne dans Bash - Utiliser l’extension de sous-chaîne pour extraire la sous-chaîne dans Bash
-
Utilisez
IFS
pour 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