D'abord veuillez excuser cette question qui n'est pas du tout pure Debian..=
.
Je cherche =E0 d=E9finir une regex pour "matcher" des num=E9ros 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=E9sultat 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=E7ant le dernier + par * =E7a 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 =E0 comprendre o=F9 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-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/BANLkTimPoegu+RK=y3HMLHim_VPx4U5qHQ@mail.gmail.com
--
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-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/87sjqzcya4.fsf@moo.wxcvbn.org
-- 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 En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
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 a écri t :
mathias dufresne writes:
Bonjour à tous,
D'abord veuillez excuser cette question qui n'est pas du tout pure Debia n...
Je cherche à définir une regex pour "matcher" des numéros de versi on 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.
Inutile car le résultat ne changera pas mais ça ressemble déjà pl us à 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 En cas de soucis, contactez EN ANGLAIS Archive: http://lists.debian.org/
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 <ktulu@wxcvbn.org> a écri t :
D'abord veuillez excuser cette question qui n'est pas du tout pure Debia n...
Je cherche à définir une regex pour "matcher" des numéros de versi on 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.
Inutile car le résultat ne changera pas mais ça ressemble déjà pl us à
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-REQUEST@lists.debian.org
En cas de soucis, contactez EN ANGLAIS listmaster@lists.debian.org
Archive: http://lists.debian.org/BANLkTim4gzwLVgWy69c7_5C_gkSSV71k1A@mail.gmail.com
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 a écri t :
mathias dufresne writes:
Bonjour à tous,
D'abord veuillez excuser cette question qui n'est pas du tout pure Debia n...
Je cherche à définir une regex pour "matcher" des numéros de versi on 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.