Problème awk ( valeur supérieure ou inférieure à zero)
Résolu
michael_scott
Messages postés
65
Statut
Membre
-
michael_scott Messages postés 65 Statut Membre -
michael_scott Messages postés 65 Statut Membre -
Bonjour,
J'ai un shell comprenant un awk pour faire des opérations du type (je ne mets tous le shell pour plus de clarté )
if ( $3>0 ) { valeur=11000 }
if ( $3<0 ) {valeur=200}
Jusque la tout va bien, mais lorsque que $3 est très proches de zero , par ex $3=-1.415642E-07 ; au lieu de prendre valeur à 200 comme $3 est négatif, il me prend valeur=11000.
Le problème doit venir du nombre de caractère.. ou un truc du genre..
Si quelqu'un peux m'aider
Merci d'avance : )
Michael Scott
J'ai un shell comprenant un awk pour faire des opérations du type (je ne mets tous le shell pour plus de clarté )
if ( $3>0 ) { valeur=11000 }
if ( $3<0 ) {valeur=200}
Jusque la tout va bien, mais lorsque que $3 est très proches de zero , par ex $3=-1.415642E-07 ; au lieu de prendre valeur à 200 comme $3 est négatif, il me prend valeur=11000.
Le problème doit venir du nombre de caractère.. ou un truc du genre..
Si quelqu'un peux m'aider
Merci d'avance : )
Michael Scott
2 réponses
-
hello
quel awk ?awk --version
forcer un traitement numérique de $3 :if($3+0<0)...
-
j'ai awk 3.1.6
le test fonctionne, montre un exemple des vraies données et comment awk les lit.$ cat a4
1 2 3 4
11 22 -1.415642E-07 44
111 222 -3 444
$ awk '{if ( $3>0 )valeur=11000; if ( $3<0 )valeur=200; print valeur}' a4
11000
200
200