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

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



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

Attachment: pgpXCJxb8d1vv.pgp
Description: PGP signature


Reply to: