Problème awk ( valeur supérieure ou inférieure à zero)
Résolu
michael_scott
Messages postés
58
Date d'inscription
Statut
Membre
Dernière intervention
-
michael_scott Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
michael_scott Messages postés 58 Date d'inscription Statut Membre Dernière intervention -
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
A voir également:
- Problème awk ( valeur supérieure ou inférieure à zero)
- Remettre a zero un pc - Guide
- Comment remettre un iphone à zéro - Guide
- Remise a zero chromecast - Guide
- Remettre un pc a zero sans mot de passe - Guide
- Inferieur ou egal clavier ✓ - Forum Bureautique
2 réponses
j'ai awk 3.1.6
le test fonctionne, montre un exemple des vraies données et comment awk les lit.
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
forcer un traitement, c'est à dire ?
merci
$3+0 force awk à traiter $3 comme un nombre et pas comme une chaine de caractères
ok ok j ai compris, je vais essayer
essayer