Files
SavaneWiki/docs/Linux/2025-05-20-bash-life.md
jf 3e10720fc5
All checks were successful
continuous-integration/drone/push Build is passing
bash_rematch
2026-03-16 17:58:14 +01:00

930 B

title, summary, author, date
title summary author date
Bash life Bourne Again SHell
JF
20-05-2025

Bash cheatsheet

Bash strict mode

set -euo pipefail
IFS=$'\n\t'

BASH_REMATCH et les tests de regex =~ avec l'opérateur conditionnel [[:

BASH_REMATCH special variable

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