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 :

Calculer et trier en se basant sur un champ


Sujet :

Shell et commandes GNU

  1. #1
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 30
    Points
    30
    Par défaut Calculer et trier en se basant sur un champ
    Bonsoir,
    J'espère que vous allez tous bien,

    j'ai un document texte qui contient des lignes et des champs qui sont séparer par un ; (point_virgule).
    je veux appliquer la commande "sort" sur ces ligne en se basant sur la troisème colonne et calculer le nombre de chaque valeur du champs 3 et mettre le resultat dans un nouveau champs à la fin.

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    EDIJH1;HomH1;687100098;EDIT;OK
    KHUIG;HomH1;5664000577;EDIT;OK
    THRT1;HomH1;76756000468;EDIT;OK
    KHTJG;HomH1;5664000577;EDIT;OK
    THRT1;HomH1;76756000468;EDIT;OK
    merci pour votre aide

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 595
    Points : 19 476
    Points
    19 476
    Par défaut
    calculer le nombre de chaque valeur du champs 3 et mettre le resultat dans un nouveau champs à la fin.
    ça c'est pour awk.

    calculer le nombre de chaque valeur du champs 3
    mais, ça, c'est pas clair.

    quelle serait la sortie correspondant à l'exemple ?

    même le tri peut être exécuté dans le script awk.

  3. #3
    Expert éminent sénior Avatar de disedorgue
    Homme Profil pro
    Ingénieur intégration
    Inscrit en
    Décembre 2012
    Messages
    4 311
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France

    Informations professionnelles :
    Activité : Ingénieur intégration
    Secteur : High Tech - Opérateur de télécommunications

    Informations forums :
    Inscription : Décembre 2012
    Messages : 4 311
    Points : 12 828
    Points
    12 828
    Par défaut
    Bonjour,

    En fait, je me demande si on ne pourrait pas traiter ces 3 demandes du jour dans un seul script ???

  4. #4
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    Bonsoir,

    merci pour votre réponse ,

    voilà la réponse:

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    $ sort -n -t";" -k3,3 ii | awk 'BEGIN{FS=OFS=";"}{c3=$3;$6=++n[c3];print}'|tac|awk 'BEGIN{FS=OFS=";"}{if(n[$3]++)$6=c6;else c6=$6;print}'|tac
    le résultat:
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
     
    EDIJH1;HomH1;687100098;EDIT;OK;1
    KHTJG;HomH1;5664000577;EDIT;OK;2
    KHUIG;HomH1;5664000577;EDIT;OK;2
    THRT1;HomH1;76756000468;EDIT;OK;2
    THRT1;HomH1;76756000468;EDIT;OK;2

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 595
    Points : 19 476
    Points
    19 476
    Par défaut
    beurk !
    tu peux transmettre à pingouinux
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F";" '{a[$3]++; aa[++n]=$0}END{for(i=1;i<=n;i++){split(aa[i],A,";");print aa[i]";"a[A[3]]}}' mond14 |sort -t';' -k3,3n
    en triturant davantage, on peut arriver à se passer de sort

    --
    awk !

  6. #6
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    Bonsoir,
    Merci Beaucoup N_BaH

    j'ai une autre question s'il vous plait.

    et si on veut calculer on se basant sur deux champs le troisième et le sixième?

    exemple :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    EDIJH1;HomH1;687100098;EDIT;OK;5555555
    KHTJG;HomH1;5664000577;EDIT;OK;9999999
    KHUIG;HomH1;5664000577;EDIT;OK;9999999
    THRT1;HomH1;76756000468;EDIT;OK;7676767
    THRT1;HomH1;76756000468;EDIT;OK;9292929
    si on veut un resultat comme ça qu'onva ajouter en 7ème champs :

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    EDIJH1;HomH1;687100098;EDIT;OK;5555555;1
    KHTJG;HomH1;5664000577;EDIT;OK;9999999;2
    KHUIG;HomH1;5664000577;EDIT;OK;9999999;2
    THRT1;HomH1;76756000468;EDIT;OK;7676767;1
    THRT1;HomH1;76756000468;EDIT;OK;9292929;1
    qu'est ce qu'on doit modifier dans le codes?

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

    Informations forums :
    Inscription : Février 2008
    Messages : 7 595
    Points : 19 476
    Points
    19 476
    Par défaut
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    awk -F";" '{a[$3,$6]++; aa[++n]=$0}END{for(i=1;i<=n;i++){split(aa[i],A,";");print aa[i]";"a[A[3],A[6]]}}' fichier | sort ...

  8. #8
    Nouveau membre du Club
    Inscrit en
    Mai 2009
    Messages
    40
    Détails du profil
    Informations forums :
    Inscription : Mai 2009
    Messages : 40
    Points : 30
    Points
    30
    Par défaut
    BOnsoir

    merci beaucoup :-)

+ Répondre à la discussion
Cette discussion est résolue.

Discussions similaires

  1. [AC-2003] Calcul de la Médiane avec regroupement sur un champ
    Par Antisthene dans le forum VBA Access
    Réponses: 10
    Dernier message: 04/07/2013, 21h56
  2. Réponses: 3
    Dernier message: 06/09/2008, 06h51
  3. Trier un fichier texte sur un champs précis
    Par jacko2 dans le forum Général Java
    Réponses: 3
    Dernier message: 14/04/2008, 09h58
  4. Réponses: 18
    Dernier message: 29/02/2008, 11h41
  5. Réponses: 7
    Dernier message: 10/05/2006, 11h15

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