Bonjour
Je n'arrive pas à faire fonctionner la commande awk avec une expression régulière sur CentOS.
L'objectif est de tester la saisi alphanumérique sur 4 positions.Code:echo $1 | awk '/[A-Z0-9]{4}$/ {print $1}' | wc -l | awk '{print $1}'
Version imprimable
Bonjour
Je n'arrive pas à faire fonctionner la commande awk avec une expression régulière sur CentOS.
L'objectif est de tester la saisi alphanumérique sur 4 positions.Code:echo $1 | awk '/[A-Z0-9]{4}$/ {print $1}' | wc -l | awk '{print $1}'
Ton message est assez obscure. Si tu veux de l'aide, tu dois fournir un exemple de chaîne en entrée, ce que tu souhaites obtenir au final avec cette chaîne, et une explication compréhensible de ce que tu veux faire.
Bonjour,
je ne vois pas l'intérêt de wc... :/
il faut expliciter ce que tu veux en faire.
voir man 7 regexCode:awk '/[[:alnum:]]{4}$/{print $1}'
[Back]
Le but est de tester $1 sur 4 positions en alphanumérique. Sur CentOS, ka commande Awk ne fonctionne pas avec l'expression régulière. Si je positionne $1 à AM00 alors print ne me te renvoit rien (vide) :
Code:echo $1 | awk '/[A-Z0-9]{4}$/ {print $1}'
et quand tu fais que echo $1 ?
Peux-tu nous envoyer le résultat de:
Juste pour voir...Code:echo "AM00" | awk '/[A-Z0-9]{4}$/ {print $1}'
J'ai fait les 2 tests mais la commande ne renvoi rien :
1. test avec echo
2. test avec print $1Code:
1
2
3
4
5 > $ echo $m_VAR AM00 > echo $m_VAR | awk '/[A-Z0-9]{4}$/ {echo $m_VAR}' >$
Code:
1
2
3 >$ echo "AM00" | awk '/[A-Z0-9]{4}$/ {print $1}' >$
ah ? :(et, $m_VAR n'est pas une variable connue de awk, il faudrait la lui "transférer" avec l'option --assign, ou -v.Code:
1
2 $ echo "AM00" | awk '/[A-Z0-9]{4}$/ {print $1}' AM00
quelle version de awk est installée sur ton système ?etCode:readlink -f $(which -a awk)
Code:man -s 1 -k awk
Bonjour,
Sous gnu awk, les expressions d'intervalle ne sont disponibles qu'en mode POSIX (--posix).
Sinon, la regex est aussi fonctionnelle pour AM001 par exemple, mais c'est peut-être voulu. :)
Bien vu.
Avant la version 4 (disponible à partir de centOS 7), gawk est en mode compatibilité par défaut, il faut donc lui ajouter le switch --posix pour passer en mode POSIX et pouvoir utiliser les quantificateurs {m}, {m,} et {m,n}, ou bien le switch --re-interval (qui a l'avantage de ne pas désactiver les extensions GNU).
Par contre à partir de la version 4, --re-interval est activé par défaut, ces quantificateurs sont alors directement disponibles.
Bravo
Merci pour votre support :)