930 B
930 B
title, summary, author, date
| title | summary | author | date | |
|---|---|---|---|---|
| Bash life | Bourne Again SHell |
|
20-05-2025 |
set -euo pipefail
IFS=$'\n\t'
BASH_REMATCH et les tests de regex =~ avec l'opérateur conditionnel [[:
Lors d'un test de regex avec du type if [[ ${variable} =~ ${pattern} ]], tous les résultats qui "matchent" le pattern sont stockés dans un variable spéciale BASH_REMATCH, qui est en fait un array. On peut donc itérer dessus.
Exemple :
var="un velo"
pattern='(u[a-z]+)\s*(v[a-z]+)'
if [[ $var =~ $pattern ]]; then
for m in "${!BASH_REMATCH[@]}"; do
echo "$m: ${BASH_REMATCH[$m]}"
done
fi
Résultat:
0: un velo
1: un
2: velo