Trouver min/max shell

Bonjour,

Depuis une interface shell je souhaiterais lire un fichier (3colonnes lon /lat /valeur) et trouver min et max de la troisieme colonne. Puis afficher ces 2 valeurs min et max (je débute je ne connais pas la syntaxe) Merci!
Configuration: Linux
Firefox 2.0.0.6

7 réponses

  • Votes
  • Date
  • Date décroissante
  1. Bonjour

    min=$(cut -f3 $tonfichier | sort -n | head -1)
    max=$(cut -f3 $tonfichier | sort -n -r | head -1)
    
    echo "$min $max"
    


    Il doit y avoir plus "propre" mais ça doit fonctionner.
    Il n'y a plus qu'à attendre que jipicy passe dans le coin...
    1. Merci mais ce code me sort 2 lignes dont la 3eme colonne ne corraspond pas au min et max. Pourrais tu m'en dire plus ou bien faut il attendre el maestro jipicy
      1. Je t'ai mis la syntaxe pour un script sh.
        Si tu veux le lancer directement dans le shell.

        set min=`cut -f3 Tonfichier | sort -n | head -1`
        set max=`cut -f3 Tonfichier | sort -n -r | head -1`
        echo $min $max
        1. Modérateur
          Salut vous deux,

          Faudrait peut être nous afficher un bout de ton fichier histoire qu'on puisse voir le délimiteur de champs, non ?

          La syntaxe de "Darkito" est nickel, et avec le bon délimiteur, ça devrait le faire mieux encore ;-))
          min=$(cut -d "délimiteur" -f3 Tonfichier | sort -n | head -1)
          max=$(cut -d "délimiteur" -f3 Tonfichier | sort -n -r | head -1)
          echo $min $max
          :-))
          1. Rebonsoir , voila a quoi ressemble mon fichier (3 colonnes sur 16500 lignes)

            -4.950000 41.05000 0.000000
            -4.950000 41.15000 0.000000
            -4.950000 41.25000 0.000000
            -4.950000 41.35000 0.000000

            Merci encore
            1. Modérateur
              [tmpfs]$ cat angou
              -4.950000 41.05000 0.007000
              -4.950000 41.15000 0.000400
              -4.950000 41.25000 0.000090
              -4.950000 41.35000 0.800000
              -4.950000 41.05000 3.000000
              -4.950000 41.15000 0.000000
              -4.950000 41.25000 0.050000
              -4.950000 41.35000 1.000000
              
              [tmpfs]$ cut -d" " -f3 angou | sort -n | sed '1,${1b;$b;d}'
              0.000000
              3.000000
              ;-))

              Discussions similaires

              Maxmaillots.net, vos avis

              47 réponses