Bash : explode

explode : convertit une chaîne de caractère en tableau

Équivalent à la function PHP explode

Code

 


function explode() {
    # call: array=("$(explode $delimiter $string)")
    # equivalent PHP explode
    local delimiter="$1" string="$2"
    local IFS="${delimiter}"; shift; read -a array <<< "${string}";

    if [[ "${array[@]}" ]]; then echo "${array[@]}"; else return 1; fi

    unset IFS delimiter string

}
 

 

Paramètres

delimiter est le délimiteur, le ou les caractères pour séparer la chaîne.

string est la chaîne à séparer.

Valeurs de retour

Retourne un tableau de chaîne de caractère.

Autrement retourne 1 : considérez cette valeur comme FALSE.

Exemple

 


partition="uboot bootimg recovery logo android usrdata"

parts=($(explode " " "${partition}")) # and not: parts=("$(explode " " "${partition}")")
echo "${parts[0]}" # uboot
echo "${parts[4]}" # android

partition="uboot|bootimg|recovery|logo|android|usrdata"
parts=($(explode "|" "${partition}"))
echo "${parts[1]}" # bootimg
echo "${parts[2]}" # recovery
 

 

Note

Il existe la function ci-dessous qui permet de découper une chaîne de caractère normale (avec des espaces entre les mots), sans usage de délimiteur.

 


    x=0
    for str in $string; do array[$x]="$str"; let "x = $x + 1"; done
    unset x
 

 

 

 


<<| Page : Bash : function : strings : explode : |>>


 

 

^ Haut de page ^