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 :

Sort sur plusieurs colonnes


Sujet :

Shell et commandes GNU

  1. #1
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut Sort sur plusieurs colonnes
    Bonjour à tous,
    J'aimerai pouvoir trier une liste en fonction de 2 colonnes, et en calculant avec des dates comme ceci (exemple factice) :

    Le trie doit se faire par date ET par haut pour remonter la ligne la plus "récente" en premier et la plus vieille en dernier (trie par ordre de date)

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    root@NAS:~# who
    root	pts/11	2019-10-22	10:54 (127.0.0.1)
    root	pts/2	2019-10-23	22:01 (127.0.0.1)
    root	pts/9	2019-10-21	09:07 (127.0.0.1)
    root	pts/5	2019-10-20	15:18 (127.0.0.1)
    root	pts/7	2019-10-23	23:26 (127.0.0.1)
    Doit renvoyer

    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
     
    root@NAS:~# who
    root	pts/7	2019-10-23	23:26 (127.0.0.1)
    root	pts/2	2019-10-23	22:01 (127.0.0.1)
    root	pts/11	2019-10-22	10:54 (127.0.0.1)
    root	pts/9	2019-10-21	09:07 (127.0.0.1)
    root	pts/5	2019-10-20	15:18 (127.0.0.1)
    Je sais trier avec sort -k4 sur la colonne 4, pour l'heure, mais je ne sais pas comment prendre en compte la date...
    Merci pour votre aide

  2. #2
    Expert éminent sénior Avatar de Flodelarab
    Homme Profil pro
    Inscrit en
    Septembre 2005
    Messages
    5 243
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Charente (Poitou Charente)

    Informations forums :
    Inscription : Septembre 2005
    Messages : 5 243
    Points : 13 459
    Points
    13 459
    Par défaut
    Bonjour

    Pour les dates, tu peux passer par le nombre de secondes depuis l'Epoch.
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    $ date -d"2019-10-23"
    mercredi 23 octobre 2019, 00:00:00 (UTC+0200)
    $ date -d"2019-10-23" +"%s"
    1571781600
    $ date -d"2019-10-23 22:01" +"%s"
    1571860860
    Exemple de ce que tu peux faire :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    $ while read nom term date heure aff autre; do echo -n "$nom $term $date $heure $aff $autre";date -d"$date $heure" +"%s"; done < <(who) | sort -nr -k6
    flodelarab pts/1 2019-10-22 13:41 (tmux(3603).%0) 1571744460
    flodelarab tty2 2019-10-22 13:22 (:0) 1571743320
    Cette réponse vous apporte quelque chose ? Cliquez sur en bas à droite du message.

  3. #3
    Membre éprouvé Avatar de balkany
    Homme Profil pro
    Touriste
    Inscrit en
    Juillet 2017
    Messages
    346
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 40
    Localisation : France, Paris (Île de France)

    Informations professionnelles :
    Activité : Touriste

    Informations forums :
    Inscription : Juillet 2017
    Messages : 346
    Points : 977
    Points
    977
    Par défaut
    Sauf erreur, étant donné le format de date et d'heure utilisé ici, un tri alphabétique sur les colonnes 3 et 4 suffit, non ?
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    $ sort -rk3,4 fichier
    root	pts/7	2019-10-23	23:26 (127.0.0.1)
    root	pts/2	2019-10-23	22:01 (127.0.0.1)
    root	pts/11	2019-10-22	10:54 (127.0.0.1)
    root	pts/9	2019-10-21	09:07 (127.0.0.1)
    root	pts/5	2019-10-20	15:18 (127.0.0.1)
    $

  4. #4
    Membre régulier
    Inscrit en
    Décembre 2010
    Messages
    258
    Détails du profil
    Informations forums :
    Inscription : Décembre 2010
    Messages : 258
    Points : 77
    Points
    77
    Par défaut
    Avec un peu de retard, merci beaucoup !!

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

Discussions similaires

  1. [XL-2013] Sort sur plusieurs colonnes avec une colonne critère
    Par informer dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 23/02/2019, 14h41
  2. Sort sur plusieurs colonnes
    Par denice007 dans le forum Linux
    Réponses: 2
    Dernier message: 17/03/2007, 18h20
  3. Jointure avec conditions sur plusieurs colonnes
    Par ben53 dans le forum Langage SQL
    Réponses: 9
    Dernier message: 28/11/2005, 09h27
  4. Lister sur plusieurs colonnes dans état
    Par armagued dans le forum Access
    Réponses: 3
    Dernier message: 30/10/2005, 21h21
  5. Query sur plusieurs colonnes avec count(distinct...)
    Par Jeankiki dans le forum Langage SQL
    Réponses: 2
    Dernier message: 18/08/2004, 15h22

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