Path: ...!news.mixmin.net!eternal-september.org!reader02.eternal-september.org!.POSTED!not-for-mail From: Jacques L'helgoualc'h Newsgroups: fr.comp.os.linux.configuration Subject: Re: Manipulation de =?UTF-8?Q?cha=C3=AEne?= Date: Sun, 22 May 2022 08:29:28 -0000 (UTC) Organization: Aucune. Lines: 42 Message-ID: References: MIME-Version: 1.0 Content-Type: text/plain; charset=utf-8 Content-Transfer-Encoding: 8bit Injection-Date: Sun, 22 May 2022 08:29:28 -0000 (UTC) Injection-Info: reader02.eternal-september.org; posting-host="71f05b1e152aeb09f5c2c9a9eb1969e6"; logging-data="29241"; mail-complaints-to="abuse@eternal-september.org"; posting-account="U2FsdGVkX1+qPAOlSwxvSwh6PYsCENMU" User-Agent: slrn/1.0.3 (Linux) Cancel-Lock: sha1:7FBeFT779gMuU8ZRlbeXFvei+FA= Bytes: 2628 Le 21-05-2022, Olivier Miakinen a écrit : > Bonjour Jacques, > > Le 22/05/2022 00:12, Jacques L'helgoualc'h a écrit : >>> >>> Bien sûr je pourrais écrire "${v:0:1}\.${v:1:1}\.${v:2:1}\.${v:3}", mais >>> y a-t-il plus simple ? >> >> $ echo 2718281828459045 | \ >> sed -nre '/^[0-9]+$/!{s/^/Fuck /p;q};:x;s/([0-9])([0-9])/\1\\.\2/;/(\\\.[0-9]){3}/{p;q};bx' >> 2\.7\.1\.8281828459045 > > Ouah ! Je n'appellerais pas ça « plus simple », mais avec l'aide de > « man sed » tu viens de me faire découvrir la puissance de cette > commande que j'étais loin de soupçonner ! Sed est Turing-complet :) > Je viens d'apprendre : > - le « ! » pour ne pas exécuter une commande si l'adresse ne matche pas ; > - les blocs de commandes avec « { » et « } » ; > - l'option -n pour supprimer l'auto-print ; > - le « p;q » pour afficher le résultat puis quitter ; > - les boucles, avec un label (:x) et un branchement (bx). > > Je connaissais le reste, mais c'était un usage tellement limité ! J'avais envisagé d'utiliser le « hold-space » pour limiter un s///g :) [...] >> Le plus simple : >> >> echo 2718281828459045 |sed -e 's/[0-9]/&\\./g;s/\\.$//' >> 2\.7\.1\.8\.2\.8\.1\.8\.2\.8\.4\.5\.9\.0\.4\.5 > > Bon sang mais c'est bien sûr ! Je m'en veux de ne pas y avoir pensé > moi-même, parce que je connaissais tout ce qu'il fallait pour arriver > à cette solution. > > Un grand merci à toi, c'est vraiment génial cette commande. de rien !