Path: csiph.com!weretis.net!feeder8.news.weretis.net!news.szaf.org!inka.de!mips.inka.de!.POSTED.localhost!not-for-mail From: Christian Weisgerber Newsgroups: fr.comp.os.unix Subject: Re: Shell : extraire d'une chaine plusieurs sous-chaines Date: Tue, 25 Nov 2025 19:45:04 -0000 (UTC) Message-ID: References: <10g4rbq$2i1$1@cabale.usenet-fr.net> MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Injection-Date: Tue, 25 Nov 2025 19:45:04 -0000 (UTC) Injection-Info: lorvorc.mips.inka.de; posting-host="localhost:::1"; logging-data="71017"; mail-complaints-to="usenet@mips.inka.de" User-Agent: slrn/1.0.3 (FreeBSD) Xref: csiph.com fr.comp.os.unix:8133 On 2025-11-25, Olivier Miakinen wrote: > 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]+/ En regex basique, c'est /[a-z][a-z]*[0-9][a-z]*[0-9][0-9]*/ > 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 ? S'il y a un caractère qui n'apparait pas dans la chaine, on peut utiliser un outil externe pour couper la chaine en morceaux, séparer les morceaux par ce caractère, et ... while IFS='!' read v1 v2 v3 v4; do ... done <