Arrondissement

Résolu
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. 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
    1. Contributeur
      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
      1. merci beaucoup pour votre aide et information!
        0