Extraire la sous-chaîne en Bash

Fumbani Banda 30 janvier 2023
  1. Utilisez la commande cut pour extraire la sous-chaîne dans Bash
  2. Utiliser l’extension de sous-chaîne pour extraire la sous-chaîne dans Bash
  3. Utilisez IFS pour extraire la sous-chaîne dans Bash
Extraire la sous-chaîne en 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
Fumbani Banda avatar Fumbani Banda avatar

Fumbani is a tech enthusiast. He enjoys writing on Linux and Python as well as contributing to open-source projects.

LinkedIn GitHub

Article connexe - Bash String