Tri d'un fichier

Résolu
chriseb.f Messages postés 9 Statut Membre -  
dubcek Messages postés 19021 Statut Contributeur -
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 38797 Statut Contributeur 6 433
 
Salut,

Tu as regardé la commande sort (man sort) ?
0
chriseb.f Messages postés 9 Statut Membre
 
oui mais je me perds un peu dans les options
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
  • -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 Statut Membre > zipe31 Messages postés 38797 Statut Contributeur
 
Effectivement ceux sont les options possibles mais il faut bien les définir.
et ce n'est pas évident.
0
zipe31 Messages postés 38797 Statut Contributeur 6 433 > chriseb.f Messages postés 9 Statut Membre
 
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 Statut Membre > zipe31 Messages postés 38797 Statut Contributeur
 
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 38797 Statut Contributeur 6 433 > chriseb.f Messages postés 9 Statut Membre
 
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 19021 Statut Contributeur 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 Statut Membre
 
génial
Merci bcp
0
zipe31 Messages postés 38797 Statut Contributeur 6 433
 
Salut dubcek,

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