Forum Programmation.shell Tri fichier

Posté par  .
Étiquettes : aucune
0
4
juil.
2006
Salut,

Voila mon pb. Je possede un fichier au format csv (le delimiteur est le ; (point virgule) ). Il comporte 25 champs par ligne. Mon but est de trier ce fichier mais uniquement selon une colonne. Cette colonne contient une date et une heure de la forme : 2006-05-31 23:26:50 (par exemple)
Et bien evidemment j'aimerais que mon fichier soit ordonné dans l'ordre (ie de la date la plus ancienne a la plus recente). Est il possible de faire qqchose de la sorte ? Je precise que mon fichier est assez volumineux (environ 700000 lignes).
Merci
  • # sort

    Posté par  . Évalué à 8.

    Bonjour je pense qu'un sort :


    sort [-cmus] [-t separator] [-o output-file] [-T tempdir] [-bdfiMnr] [+POS1 [-POS2]] [-k POS1[,POS2]] [file...]

    -t pour indiquer le séparateur
    +POS1 pour lui indiquer quel champ doit servir de clé de tri

    Guilhelm
  • # si...

    Posté par  . Évalué à 1.

    si c'est une tâche qui sera répétée, il serait bon de penser à une importation dans une base de données, le tri des 700 000 lignes serait
    quasi instantané (en tout cas moins long que le sort).
    • [^] # Re: si...

      Posté par  . Évalué à 3.

      Effectivement, vu le volume à traiter, ça peut être assez long, une autre solution, sans passer par une base de données serait d'implémenter un autre algorithme de tri qui convienne bien aux grands volumes comme le Quick Sort (récursif), plus d'info là :

      http://linux.wku.edu/~lamonml/algor/sort/quick.html

      Guilhelm

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.