Re: Remplacements de caractères indexés

Top Page

Reply to this message
Author: Frédéric Mantegazza
Date:  
To: guilde
Subject: Re: Remplacements de caractères indexés
Soit :

$ cat text
fs,2007,2007,hr,t8,tyv
ddfsfd,dfdssf,2007,2007,5xgf6,gfgt
sd,2008,2007,Fwvhw,x

où je veux remplacer la date qui suite la deuxième virgule...

Pourquoi ceci marche :

$ cat text | perl -pe 's/(.*?),(.*?),\d{4}/\1,\2,2008/'
fs,2007,2008,hr,t8,tyv
ddfsfd,dfdssf,2008,2007,5xgf6,gfgt
sd,2008,2008,Fwvhw,x

et pas ça :

$ cat text | sed -r 's/(.*?),(.*?),\d{4}/\1,\2,2008/'
fs,2007,2007,hr,t8,tyv
ddfsfd,dfdssf,2007,2007,5xgf6,gfgt
sd,2008,2007,Fwvhw,x

On dirait que le quantifieur ? (non avide) ne fonctionne pas en sed...

--
Frédéric

http://www.gbiloba.org