Arrondissement

Résolu
herysoa Messages postés 9 Statut Membre -  
herysoa Messages postés 9 Statut Membre -
Bonjour,

Je voudrais arrondir des chiffres avec une script shell, j'ai utilisé ceci:
awk -F " " '{ if ($1 >= "2") print $2" "int($1/2)}' file2.txt > file3.txt

---> contenue de file2.txt
18 26132xxxxx
11 26132xxxxx
10 26132xxxxx
10 26132xxxxx
10 26132xxxxx
9 26132xxxxxx
9 26132xxxxxx
9 26132xxxxxx
8 26132xxxxxx
8 26132xxxxxx
8 26132xxxxxx
7 26132xxxxxx
7 26132xxxxxx
7 26132xxxxxx
7 26132xxxxxx
mais pour le resultats il n'affiche que file3.txt:
26132xxxxx 4
26132xxxxx 4
26132xxxxx 4
26132xxxxx 4
26132xxxxx 4
26132xxxxx 4
26132xxxxx 3
26132xxxxx 3

donc il ne fait pas celui de
18 26132xxxxx
11 26132xxxxx
10 26132xxxxx
10 26132xxxxx
10 26132xxxxx
qui devrait donné:
9 26132xxxxx
5 26132xxxxx
5 26132xxxxx
5 26132xxxxx.....

est-ce que quelqu'un pourrait m'aider s'il vous plait?
Merci!

3 réponses

  1. Utilisateur anonyme
     
    salut,

    apparemment, les nombres de plus d'un chiffre sont lexicalement inférieur à 2
    :?

    mettre un nombre entre guillemets, dans
    awk
    , inhibe son aspect numérique (il n'est plus un nombre, mais un mot).

    pour le shell, c'est pareil :
    $ [ 18 \> 2 ] && echo ok || echo ko
    ko
    $ [ 9 \> 2 ] && echo ok || echo ko
    ok
    1
  2. zipe31 Messages postés 34620 Date d'inscription   Statut Contributeur Dernière intervention   6 501
     
    Salut,

    Essaye comme ça :

    awk -F " " '{ if ($1 >= 2) print $2,int($1/2)}' f2
    26132xxxxx 9
    26132xxxxx 5
    26132xxxxx 5
    26132xxxxx 5
    26132xxxxx 5
    26132xxxxxx 4
    26132xxxxxx 4
    26132xxxxxx 4
    26132xxxxxx 4
    26132xxxxxx 4
    26132xxxxxx 4
    26132xxxxxx 3
    26132xxxxxx 3
    26132xxxxxx 3
    26132xxxxxx 3

    0
  3. herysoa Messages postés 9 Statut Membre
     
    merci beaucoup pour votre aide et information!
    0