MS-DOS : Ordre de tri différent avec sort
Répondre à la discussion
Affichage des résultats 1 à 5 sur 5

MS-DOS : Ordre de tri différent avec sort



  1. #1
    invitebd5efd20

    Question MS-DOS : Ordre de tri différent avec sort


    ------

    Bonjour,

    Je souhaite trier un fichier avec des ordres de tri différent sur la colonne.
    Par exemple, j'ai le fichier suivant qui a la structure suivante :

    Joueur;Nombre de Points obtenus;Nombre de manches jouées

    Je souhaite trier ce fichier sur
    "Nombre de Points obtenus" décroissant
    ET
    "Nombre de manches jouées" croissant

    Et je ne sais pas comment le formaliser avec la commande sort. Je sais que c'est l'option "-r". Mais si je la mets, il me l'utilise pour toutes les colonnes triées....

    Quelqu'un pourrait m'aider ?

    Merci d'avance de votre réponse.

    -----

  2. #2
    invite4ad25ccf

    Re : MS-DOS : Ordre de tri différent avec sort

    Sort ne permet pas de faire cela. Il faut donc faire un petit script.
    L'idée c'est de sortir les points obtenus unique et trié. Ensuite, on relit le fichier, et pour chaque ligne avec ce score, on sort les partie jouée unique et trié. Ensuite on relie une derniere fois le fichier pour obtenir les lignes qui contiennent le nombre de partie et le score en cours de traitement.

    Un exemple en bash (les différents outils utilisés doivent exister sous windows, soit d'office, ou à télecharger)

    Code:
    #!/bin/sh
    
    for score in `cat a | awk -F';' '{print $2}' | sort -u -n -r`
    do
            for manche in `grep -E ";$score;" a | awk -F';' '{print $3}' | sort -u -n`
            do
                    grep -E "$score;$manche$" a
            done
    done
    Pour un fichier de ce type :
    toto;550;10
    tata;10;11
    titi;10;13
    tutu;400;10
    tyty;45;9
    J'obtiens
    toto;550;10
    tutu;400;10
    tyty;45;9
    tata;10;11
    titi;10;13

  3. #3
    invitebd5efd20

    Question Re : MS-DOS : Ordre de tri différent avec sort

    Bonjour et Merci de ta réponse.
    Je ne connais pas le langage de programmation que tu utilises.
    J'abuse de ta gentillesse pour te demander si tu ne saurais pas à tout hasard le faire en dos ou en perl ?

  4. #4
    invite4ad25ccf

    Re : MS-DOS : Ordre de tri différent avec sort

    Il s'agit du langage de programmation équivalent au DOS mais sous les Unix (le bash pour être plus précis).

    Ne connaissant ni le DOS, ni le perl, j'ai vite fait écrit le même en python. Au choix, tu pourras installer python (ça toujours ça de gagner, d'avoir un interpréteur pour un vrai langage de programmation ) ou alors t'inspirer du code pour le réécrire en perl


    Code:
    import sys,string, re
    
    #insertion d'un element dans une liste trié et unique
    def insert(el, array, reverse=False):
            if not el in array:
                    array.append(el)
                    array.sort(reverse=reverse)
            return array
    
    
    filename = sys.argv[1]
    file_stream = open(filename)
    
    scores = []
    parties = []
    lines = []
    # On lit le fichier et on rempli les tableaux
    while True:
            line = file_stream.readline()
            if not line:
                    break
            lines.append(line)
            s = line.split(';')
            scores = insert(int(s[1]), scores, True)
            parties = insert(int(s[2]), parties)
    
    # On trie le fichier
    for score in scores:
            for partie in parties:
                    regex = re.compile(".+;" + str(score) + ";" + str(partie))
                    for line in lines:
                            match = regex.search(line)
                            if match:
                                    print line,

  5. A voir en vidéo sur Futura
  6. #5
    invitebd5efd20

    Smile Re : MS-DOS : Ordre de tri différent avec sort

    OK merci beaucoup pour ton aide.
    Je regarderai ça à tête reposée car là

    HIHIHI.
    Merci encore et à bientôt peut-être

Discussions similaires

  1. tri selectif des enveloppes avec fenetre
    Par invitee3e4efb3 dans le forum Environnement, développement durable et écologie
    Réponses: 16
    Dernier message: 04/12/2019, 22h24
  2. Inter différentiel tri 380+N en tri 220+N
    Par invite06c380de dans le forum Technologies
    Réponses: 3
    Dernier message: 07/03/2008, 18h22
  3. Problème avec Tri state
    Par invitec9c78817 dans le forum Électronique
    Réponses: 1
    Dernier message: 05/09/2007, 10h05
  4. compiler un programme assembleur avec le DOS
    Par invite0b127ea6 dans le forum Logiciel - Software - Open Source
    Réponses: 7
    Dernier message: 05/09/2006, 10h47
  5. Linge Sort Avec Taches De Rouille
    Par invite7f24c20e dans le forum Dépannage
    Réponses: 1
    Dernier message: 18/04/2006, 20h19
Dans la rubrique Tech de Futura, découvrez nos comparatifs produits sur l'informatique et les technologies : imprimantes laser couleur, casques audio, chaises gamer...