Tri d'un fichier

Résolu
chriseb.f Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   -  
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   -
Bonjour,
je cherche une ligne de commande en linux/unix simple pour trier mon fichier en fonction de la date et de l'heure.
Il y a plusieurs champs dans le fichier. Ils sont séparé par |

Exemple du fichier à trier:
7315|PCOL|SVN2|ALL|PI_AR|31/12/2014|12:02:14|
7315|PCOL|SVN2|ALL|PL_KO|31/12/2014|05:15:54|
7315|PCOL|SVN2|ALL|PL_OK|02/03/2015|05:02:14|
7315|PCOL|SVN2|ALL|EV_OK|18/01/2015|15:02:14|

Merci pour votre aide
A voir également:

3 réponses

zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut,

Tu as regardé la commande sort (man sort) ?
0
chriseb.f Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
oui mais je me perds un peu dans les options
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
  • -n pour un tri numérique
  • -t '|' pour indiquer le séparateur de champs
  • -k x,y pour indiquer l'intervale de champs à prendre en compte
0
chriseb.f Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   > zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention  
 
Effectivement ceux sont les options possibles mais il faut bien les définir.
et ce n'est pas évident.
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431 > chriseb.f Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
En fait ce sont juste les options dont tu as besoin pour ton cas et tout ce qu'il te reste à faire c'est de remplacer x et y par les bons numéros de champs ;-)
0
chriseb.f Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   > zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention  
 
il faut considérer 2 séparateurs de champ | et / ..voir même :
et la ça ce complique une peu ;-)
crois j'ai essayé plusieurs solutions
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431 > chriseb.f Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
Mais pourquoi considérer plusieurs champs ?
Avec -n le tri est fait sur les nombres, peu importe ce qui se trouve entre !

Voilà la sortie de ton fichier trié :
7315|PCOL|SVN2|ALL|PL_KO|31/12/2014|05:15:54|
7315|PCOL|SVN2|ALL|PI_AR|31/12/2014|12:02:14|
7315|PCOL|SVN2|ALL|EV_OK|18/01/2015|15:02:14|
7315|PCOL|SVN2|ALL|PL_OK|02/03/2015|05:02:14|
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
hello
essayer
$ sort -t "|" -n -k 6.7,6.10 -k 6.4,6.5 -k 6.1,6.2 -k 7.1,7.2 -k 7.4,7.5 -k 7.7,7.8 fichier
7315|PCOL|SVN2|ALL|PL_KO|31/12/2014|05:15:54|
7315|PCOL|SVN2|ALL|PI_AR|31/12/2014|12:02:14|
7315|PCOL|SVN2|ALL|EV_OK|18/01/2015|15:02:14|
7315|PCOL|SVN2|ALL|PL_OK|02/03/2015|05:02:14|
0
chriseb.f Messages postés 9 Date d'inscription   Statut Membre Dernière intervention  
 
génial
Merci bcp
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431
 
Salut dubcek,

Ma sortie au-dessus a été obtenu juste avec
sort -t'|' -nr -k 6,7
;-)
0
chriseb.f Messages postés 9 Date d'inscription   Statut Membre Dernière intervention   > zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention  
 
désolé j'ai testé ça marche pas.
merci qd même
0
dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention   5 637
 
pourquoi faire simple quand on peut faire compliqué ...
0
zipe31 Messages postés 36402 Date d'inscription   Statut Contributeur Dernière intervention   6 431 > dubcek Messages postés 18789 Date d'inscription   Statut Contributeur Dernière intervention  
 
C'est la devise de l'administration française ;-)
0