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. merci beaucoup pour votre aide et information!
    0
    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