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 : |>>