[Date Prev][Date Next] [Thread Prev][Thread Next] [Date Index] [Thread Index]

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



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 écrit :
> mathias dufresne <mathias.dufresne@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
>


Reply to: