Path: ...!weretis.net!feeder6.news.weretis.net!feeder8.news.weretis.net!proxad.net!feeder1-2.proxad.net!usenet-fr.net!.POSTED!not-for-mail From: Olivier Miakinen Newsgroups: fr.comp.lang.regexp Subject: Re: HHhMMmSSs -> HHhMM.1, HHhMM.2 ... (ex 16h25m22s, 16h25m24s, 16h25m26s -> 16h25.1, 16h25.2, 16h25.3 Date: Sun, 22 Aug 2021 00:49:37 +0200 Organization: There's no cabale Lines: 54 Message-ID: References: NNTP-Posting-Host: 132.184.116.78.rev.sfr.net Mime-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit X-Trace: cabale.usenet-fr.net 1629586177 52267 78.116.184.132 (21 Aug 2021 22:49:37 GMT) X-Complaints-To: abuse@usenet-fr.net NNTP-Posting-Date: Sat, 21 Aug 2021 22:49:37 +0000 (UTC) User-Agent: Mozilla/5.0 (Windows NT 10.0; Win64; x64; rv:60.0) Gecko/20100101 Firefox/60.0 SeaMonkey/2.53.1 In-Reply-To: Bytes: 2386 Bonjour, Le 21/08/2021 à 22:37, Mitchell199 a écrit : > SVP, mon français n'est pas tres bien, mais je vais essayer (avec un > peu de l'aide d'un traducteur en ligne): Merci de faire cet effort. > > Si j'ai des fichiers nommés comme ceci: > > 16h25m22s- nom > 16h25m24s- nom > 16h25m26s- nom > > Comment puis-je les renommer comme ceci en utilisant regex: > > 16h25.1- nom > 16h25.2- nom > 16h25.3- nom Je crois bien que c'est la première fois que je vais répondre « c'est impossible ». En tout cas avec seulement les regexp. Mais c'est possible en utilisant d'autres outils. Par exemple, si tu es sur Linux, la commande 'cat -n' ajoute un numéro de ligne que l'on peut ensuite utiliser. Exemple (que je copie comme une citation pour que les lignes ne soient pas coupées) : > $ ls -1 > '16h25m22s- nom' > '16h25m24s- nom' > '16h25m26s- nom' > > $ ls | cat -n | sed 's/ *\([0-9]*\)\t*\(..h..\)\(m..s\)\(.*\)/mv "\2\3\4" "\2.\1\4"/' > renomme > > $ cat renomme > mv "16h25m22s- nom" "16h25.1- nom" > mv "16h25m24s- nom" "16h25.2- nom" > mv "16h25m26s- nom" "16h25.3- nom" > > $ sh renomme > > $ ls -1 > '16h25.1- nom' > '16h25.2- nom' > '16h25.3- nom' > renomme -- Olivier Miakinen