IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Shell et commandes GNU Discussion :

awk avec fonction min et max


Sujet :

Shell et commandes GNU

  1. #1
    Membre du Club
    Profil pro
    Inscrit en
    Août 2007
    Messages
    142
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Août 2007
    Messages : 142
    Points : 57
    Points
    57
    Par défaut awk avec fonction min et max
    Bonjour,
    j'ai déjà réalisé le tri sur les colonnes 1 et 2
    Je cherche à récupérer pour chacun de mes élements le max et min

    fichier:
    20 22 element1
    25 29 element1
    38 70 element1
    10 22 element2
    15 19 element2
    28 30 element2


    je suis partie sur l'utlisation de la fonction min et max de awk, mais je coince

    20 70 element1
    10 30 element2

  2. #2
    Modérateur
    Avatar de N_BaH
    Profil pro
    Inscrit en
    Février 2008
    Messages
    7 584
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 584
    Points : 19 461
    Points
    19 461
    Par défaut
    Bonjour,

    fonctions min/max ?

    J'utiliserais un tableau associatif, qui prendrait en index le troisième champ de ton exemple.
    s'il existe je comparerais chaque valeur à $1 et $2, et si l'un des deux est différent, alors je mettrais à jour le tableau pour cet index...

  3. #3
    Expert éminent sénior
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 720
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Oise (Picardie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : Aéronautique - Marine - Espace - Armement

    Informations forums :
    Inscription : Février 2006
    Messages : 12 720
    Points : 31 043
    Points
    31 043
    Billets dans le blog
    1
    Par défaut
    Salut
    Le problème de awk c'est qu'il ne traite qu'une ligne à la fois. Et toi, tu as besoin non seulement de mémoriser les informations passées mais en plus mémoriser autant d'info que d'élément.

    En me basant sur ton exemple (c.a.d. avoir les éléments de même nature regroupés ensemble), ce script shell donne le min et le max pour chaque élément. Il traite chaque ligne et dès que l'élément change, affiche le résultat de l'élément précédent.
    Code bash : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    #!/bin/bash
     
    (
        cat fichier
        echo "0 0 _EOF_"
    ) |while read ligne
    do
        val1=$(echo $ligne |cut -f1 -d' ')
        val2=$(echo $ligne |cut -f2 -d' ')
        elem=$(echo $ligne |cut -f3 -d' ')
     
        if test "$mem_elem" != "$elem"
        then
            test -n "$mem_elem" && echo "$min $max $mem_elem"
     
            mem_elem="$elem"
            min="$val1"
            max="$val2"
        else
            test $val1 -lt $min && min=$val1
            test $val2 -gt $max && max=$val2
        fi
    done

Discussions similaires

  1. Python => Aide sur les fonctions min() et max() de Python
    Par PythonNovices dans le forum Général Python
    Réponses: 2
    Dernier message: 30/12/2014, 16h28
  2. [11gR2] Aggrégation avec borne MIN et MAX
    Par lcaya dans le forum SQL
    Réponses: 2
    Dernier message: 05/03/2013, 15h34
  3. [XL-2003] Numéro de ligne avec fonction min
    Par allergique dans le forum Macros et VBA Excel
    Réponses: 2
    Dernier message: 08/09/2010, 19h48
  4. [A2003][SQL] - Fonction Min() et Max()
    Par DeFCrew dans le forum Access
    Réponses: 8
    Dernier message: 25/09/2006, 12h16
  5. Fonction MIN et MAX résultat improbable
    Par UNi[FR] dans le forum SQL Procédural
    Réponses: 7
    Dernier message: 24/04/2006, 11h38

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo