mathias dufresne <[email protected]> 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

