Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
682 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Awk] Comportement différent suivant la variable d'environnement LANG

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[Awk] Comportement différent suivant la variable d'environnement LANG

n°579159
Evadream -​jbd-
Posté le 24-10-2004 à 20:09:17  profilanswer
 

Hello tout le monde,
 
J'ai un fichier tout bête qui ressemble à çà :
 


$ cat brut.mat
1.00000000000000 2.775557561562891E-016
4.440892098500626E-016 1.00000000000000
4.440892098500626E-016 0.99999999999999
$


 
Et un script awk, mon premier [:ddr555], qui va me permettre de formatter un peu tout çà :
 

Code :
  1. {
  2.     if ( NF > 0 ) {
  3.         printf("| " )
  4.         for( x=1 ; x <= NF ; x++) {
  5.             printf ("%14E  ",$x)
  6.         }
  7.         printf("|\n" )
  8.     }
  9. }


 
Le problème est que j'obtiens des comportements différents suivant la valeur de la variable d'environnement LANG.
 
Exemple :
 
LANG="fr_FR@euro

Code :
  1. $ export LANG="fr_FR@euro"
  2. $ awk -f format.awk brut.mat
  3. |   1,000000E+00    2,000000E+00  |
  4. |   4,000000E+00    1,000000E+00  |
  5. |   4,000000E+00    0,000000E+00  |
  6. $


 
LANG="en_US

Code :
  1. $ export LANG="en_US"
  2. $ awk -f format.awk output.res2.clean
  3. |   1.000000E+00    2.775558E-16  |
  4. |   4.440892E-16    1.000000E+00  |
  5. |   4.440892E-16    1.000000E-00  |
  6. $


 
C'est la version US qui me donne des résultats corrects. La VF semble tronquer le résultat.  Pour rassurer les inquiets, le résultat ne sera pas ensuite réintroduit, c'est juste à des fins de lisibilité et de vérification rapide.  
 
Est-ce un comportement "normal" ? Y'a une astuce, qqchose à savoir ?
 
Merci, @+


Message édité par Evadream -jbd- le 24-10-2004 à 20:10:52
mood
Publicité
Posté le 24-10-2004 à 20:09:17  profilanswer
 

n°579382
umbre_tomb​etoile
Zorglub's back
Posté le 25-10-2004 à 11:14:28  profilanswer
 

Evadream -jbd- a écrit :

Hello tout le monde,
 
J'ai un fichier tout bête qui ressemble à çà :
 


$ cat brut.mat
1.00000000000000 2.775557561562891E-016
4.440892098500626E-016 1.00000000000000
4.440892098500626E-016 0.99999999999999
$


 
Et un script awk, mon premier [:ddr555], qui va me permettre de formatter un peu tout çà :
 

Code :
  1. {
  2.     if ( NF > 0 ) {
  3.         printf("| " )
  4.         for( x=1 ; x <= NF ; x++) {
  5.             printf ("%14E  ",$x)
  6.         }
  7.         printf("|\n" )
  8.     }
  9. }


 
Le problème est que j'obtiens des comportements différents suivant la valeur de la variable d'environnement LANG.
 
Exemple :
 
LANG="fr_FR@euro

Code :
  1. $ export LANG="fr_FR@euro"
  2. $ awk -f format.awk brut.mat
  3. |   1,000000E+00    2,000000E+00  |
  4. |   4,000000E+00    1,000000E+00  |
  5. |   4,000000E+00    0,000000E+00  |
  6. $


 
LANG="en_US

Code :
  1. $ export LANG="en_US"
  2. $ awk -f format.awk output.res2.clean
  3. |   1.000000E+00    2.775558E-16  |
  4. |   4.440892E-16    1.000000E+00  |
  5. |   4.440892E-16    1.000000E-00  |
  6. $


 
C'est la version US qui me donne des résultats corrects. La VF semble tronquer le résultat.  Pour rassurer les inquiets, le résultat ne sera pas ensuite réintroduit, c'est juste à des fins de lisibilité et de vérification rapide.  
 
Est-ce un comportement "normal" ? Y'a une astuce, qqchose à savoir ?
 
Merci, @+


 
Normal. En Fr tu dois mettre une virgule à la place des points dans ton fichier source.
Ton fichier source est au format Us -> les décimales osnt notées avec des . et non pas avec des ,.
Tu remplaces les . par des , et tu verras que les résultats de ton test seront inversés (bon en Fr pas bon en Us).
Voili.

n°579411
Evadream -​jbd-
Posté le 25-10-2004 à 12:02:37  profilanswer
 

Tout bêtement... J'ai honte :)
Merci !


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [Awk] Comportement différent suivant la variable d'environnement LANG

 

Sujets relatifs
[awk] Extraire un port dans /etc/servicesquel'est la différence entre les scripts de sh, ssh, perl et awk?
Comportement VI étrange ...Enregistrer de nouvelle variable
enlever les espaces avant et après une variableformater une variable
[bash] Comment faire une "jointure" entre deux fichiers ? awk ?Quota, Script : attribuer des quotas différent pour chaque user
Désinstaller un environnement desktop[awk] comment inverser une chaine d'octet?
Plus de sujets relatifs à : [Awk] Comportement différent suivant la variable d'environnement LANG


Copyright © 1997-2025 Groupe LDLC (Signaler un contenu illicite / Données personnelles)