[HS] regex : correspondance numéros de versions

2011-06-24 Par sujet mathias dufresne
Bonjour à tous,

D'abord veuillez excuser cette question qui n'est pas du tout pure Debian...

Je cherche à définir une regex pour matcher des numéros de version avec awk.

Soit le fichier de test contenant :
3
3.
3.4
3.4.5
3.44.55
3.44.5.66
3.(4.5).6

Le résultat voulu :
3
3.4
3.4.5
3.44.55
3.44.5.66

Le test :
cat versions_file | awk '{ if ( $1 ~ /^[0-9]+[\.[0-9]+]*$/) print $1 }'

donne:
3.
3.4
3.4.5
3.44.55
3.44.5.66


En remplaçant le dernier + par * ça donne :
cat versions_file | awk '{ if ( $1 ~ /^[0-9]+[\.[0-9]*]*$/) print $1 }'
3
3.
3.4
3.4.5
3.44.55
3.44.5.66

Je n'arrive pas à comprendre où est mon erreur... Si quelqu'un peut
m'aider dans mon apprentissage, il serait le bienvenu : )

Cordialement,

Mathias

--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: 
http://lists.debian.org/BANLkTimPoegu+RK=y3hmlhim_vpx4u5...@mail.gmail.com



Re: [HS] regex : correspondance numéros de versions

2011-06-24 Par sujet Jeremie Courreges-Anglas
mathias dufresne mathias.dufre...@gmail.com writes:

 Bonjour à tous,

 D'abord veuillez excuser cette question qui n'est pas du tout pure Debian...

 Je cherche à définir une regex pour matcher des numéros de version avec awk.

 Soit le fichier de test contenant :
 3
 3.
 3.4
 3.4.5
 3.44.55
 3.44.5.66
 3.(4.5).6

 Le résultat voulu :
 3
 3.4
 3.4.5
 3.44.55
 3.44.5.66

awk '/^[0-9]+(\.[0-9]+)*$/' versions_file

(pas besoin de cat)

 Le test :
 cat versions_file | awk '{ if ( $1 ~ /^[0-9]+[\.[0-9]+]*$/) print $1 }'

 donne:
 3.
 3.4
 3.4.5
 3.44.55
 3.44.5.66

Ton utilisation des [ est incorrecte ou plutôt ne correspond pas à ce
que tu veux faire. [ et ( ont des utilités différentes qui sont très
bien expliquées dans tout papier traitant des regexs.

Une autre façon d'écrire ça serait :

awk '$1 ~ /^[0-9]+(\.[0-9]+)*$/ { print $1 }' versions_file

Inutile car le résultat ne changera pas mais ça ressemble déjà plus à
du awk (dont la logique est  PATTERN { ACTION }  ).

--
Jérémie Courrèges-Anglas - GPG key : 06A11494


pgp3Gv2gmoYFh.pgp
Description: PGP signature


Re: [HS] regex : correspondance numéros de versions

2011-06-24 Par sujet mathias dufresne
Un grand merci, j'ai finalement mis la regexp dans une variable et
matché sur le contenu de cette variable car ce test est fait dans
une condition if() et les parenthèses multiples rentraient en
conflit...

Merci encore, bon week-end à tous : )

Cdlt,

mathias

Le 24 juin 2011 12:27, Jeremie Courreges-Anglas kt...@wxcvbn.org a écrit :
 mathias dufresne mathias.dufre...@gmail.com writes:

 Bonjour à tous,

 D'abord veuillez excuser cette question qui n'est pas du tout pure Debian...

 Je cherche à définir une regex pour matcher des numéros de version avec 
 awk.

 Soit le fichier de test contenant :
 3
 3.
 3.4
 3.4.5
 3.44.55
 3.44.5.66
 3.(4.5).6

 Le résultat voulu :
 3
 3.4
 3.4.5
 3.44.55
 3.44.5.66

 awk '/^[0-9]+(\.[0-9]+)*$/' versions_file

 (pas besoin de cat)

 Le test :
 cat versions_file | awk '{ if ( $1 ~ /^[0-9]+[\.[0-9]+]*$/) print $1 }'

 donne:
 3.
 3.4
 3.4.5
 3.44.55
 3.44.5.66

 Ton utilisation des [ est incorrecte ou plutôt ne correspond pas à ce
 que tu veux faire. [ et ( ont des utilités différentes qui sont très
 bien expliquées dans tout papier traitant des regexs.

 Une autre façon d'écrire ça serait :

 awk '$1 ~ /^[0-9]+(\.[0-9]+)*$/ { print $1 }' versions_file

 Inutile car le résultat ne changera pas mais ça ressemble déjà plus à
 du awk (dont la logique est  PATTERN { ACTION }  ).

 --
 Jérémie Courrèges-Anglas - GPG key : 06A11494


--
Lisez la FAQ de la liste avant de poser une question :
http://wiki.debian.org/fr/FrenchLists

Pour vous DESABONNER, envoyez un message avec comme objet unsubscribe
vers debian-user-french-requ...@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmas...@lists.debian.org
Archive: 
http://lists.debian.org/banlktim4gzwlvgwy69c7_5c_gkssv71...@mail.gmail.com