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 confirmé
    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
    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 646
    Détails du profil
    Informations personnelles :
    Localisation : France

    Informations forums :
    Inscription : Février 2008
    Messages : 7 646
    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...
    N'oubliez pas de consulter les cours shell, la FAQ, et les pages man.

  3. #3
    Membre prolifique
    Avatar de Sve@r
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Février 2006
    Messages
    12 830
    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 830
    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
    Mon Tutoriel sur la programmation «Python»
    Mon Tutoriel sur la programmation «Shell»
    Sinon il y en a pleins d'autres. N'oubliez pas non plus les différentes faq disponibles sur ce site
    Et on poste ses codes entre balises [code] et [/code]

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