Groups | Search | Server Info | Keyboard shortcuts | Login | Register [http] [https] [nntp] [nntps]


Groups > fr.comp.lang.regexp > #252

Shell : extraire d'une chaine plusieurs sous-chaines

From Olivier Miakinen <om+news@miakinen.net>
Newsgroups fr.comp.os.unix, fr.comp.os.linux.configuration, fr.comp.lang.regexp
Subject Shell : extraire d'une chaine plusieurs sous-chaines
Followup-To fr.comp.os.unix
Date 2025-11-25 19:08 +0100
Organization There's no cabale
Message-ID <10g4rbq$2i1$1@cabale.usenet-fr.net> (permalink)

Cross-posted to 3 groups.

Followups directed to: fr.comp.os.unix

Show all headers | View raw


[diapublication, suivi vers fr.comp.os.unix seul]

Bonjour,

Dans un script ksh, je cherche la façon la plus élégante d'extraire
d'une chaine plusieurs sous-chaines. Le cas réel est plus complexe
que celui que je vais exposer, mais je saurai extrapoler ensuite.


Supposons que j'ai une chaine constituée d'1 ou plusieurs lettres,
puis 1 chiffre, puis optionnellement d'autres lettres, puis encore
1 ou plusieurs chiffres. Pour fixer les idées, disons que la chaine
répondrait à la regex suivante :
   /[a-z]+[0-9][a-z]*[0-9]+/

Je voudrais extraire chaque partie dans une variable différente.
Quelques exemples :
 s="test1xyz27"  ->  v1="test" v2="1"  v3="xyz"  v4="27"
 s="aa9toto000"  ->  v1="aa"   v2="9"  v3="toto" v4="000"
 s="x012"        ->  v1="x"    v2="0"  v3=""     v4="12"

Bien sûr je sais le faire en autant d'étapes qu'il y a de parties
à récupérer, en obtenant les variables l'une après l'autre. Mais
existe-t-il un moyen plus direct ?


Quelques précisions :
- le ksh sur cette machine ne connait pas la syntaxe [[ ... =~ ... ]]
- mais j'ai accès à perl 5, sed, awk, et probablement d'autres outils
  unix standards.


[suivi par défaut vers fcou mais vous pouvez faire suivre ailleurs si
cela vous semble plus approprié]

Cordialement,
-- 
Olivier Miakinen

Back to fr.comp.lang.regexp | Previous | Find similar | Unroll thread


Thread

Shell : extraire d'une chaine plusieurs sous-chaines Olivier Miakinen <om+news@miakinen.net> - 2025-11-25 19:08 +0100

csiph-web