Bonjour,
J'ai un fichier texte avec un grand nombre de lignes (entre 12 et 15
millions) que je souhaite trier.
Les enregistrements sont constitués de champs séparés par un séparateur.
Je suis capable d'extraire les valeurs des champs à l'aide d'une expression
régulière (merci Benoit) mais il me reste le tri.
Est-ce utopique d'imaginer le faire avec Perl ?
Des pistes...
Merci d'avance.
Bob
Vu que le separateur est fixé ( à ":" ) j'ai fais un split plutot qu'une regexp .
Maintenant 15 000 000 de lignes, je ne sais pas si ça va etre faisable en terme de mémoire !! Avec 80 caracteres par ligne ça fait du 1200 Mo, donc si tu as 2Go de ram ça devrait passer ... Faut tester !
Bonjour, J'ai un fichier texte avec un grand nombre de lignes (entre 12 et 15 millions) que je souhaite trier. Les enregistrements sont constitués de champs séparés par un sépa rateur. Je suis capable d'extraire les valeurs des champs à l'aide d'une expres sion régulière (merci Benoit) mais il me reste le tri. Est-ce utopique d'imaginer le faire avec Perl ? Des pistes... Merci d'avance. Bob
Pour le tri, tu peux faire comme dans cet exemple (tri sur le deuxieme
champs) et utiliser une "Schwartzian Transform" :
Vu que le separateur est fixé ( à ":" ) j'ai fais un split plutot
qu'une regexp .
Maintenant 15 000 000 de lignes, je ne sais pas si ça va etre faisable
en terme de mémoire !! Avec 80 caracteres par ligne ça fait du 1200
Mo, donc si tu as 2Go de ram ça devrait passer ... Faut tester !
Bonjour,
J'ai un fichier texte avec un grand nombre de lignes (entre 12 et 15
millions) que je souhaite trier.
Les enregistrements sont constitués de champs séparés par un sépa rateur.
Je suis capable d'extraire les valeurs des champs à l'aide d'une expres sion
régulière (merci Benoit) mais il me reste le tri.
Est-ce utopique d'imaginer le faire avec Perl ?
Des pistes...
Merci d'avance.
Bob
Vu que le separateur est fixé ( à ":" ) j'ai fais un split plutot qu'une regexp .
Maintenant 15 000 000 de lignes, je ne sais pas si ça va etre faisable en terme de mémoire !! Avec 80 caracteres par ligne ça fait du 1200 Mo, donc si tu as 2Go de ram ça devrait passer ... Faut tester !
Bonjour, J'ai un fichier texte avec un grand nombre de lignes (entre 12 et 15 millions) que je souhaite trier. Les enregistrements sont constitués de champs séparés par un sépa rateur. Je suis capable d'extraire les valeurs des champs à l'aide d'une expres sion régulière (merci Benoit) mais il me reste le tri. Est-ce utopique d'imaginer le faire avec Perl ? Des pistes... Merci d'avance. Bob
Jacques Caron
On 5 Sep 2005 04:00:33 -0700, Dav' wrote:
Maintenant 15 000 000 de lignes, je ne sais pas si ça va etre faisable en terme de mémoire !! Avec 80 caracteres par ligne ça fait du 1200 Mo, donc si tu as 2Go de ram ça devrait passer ... Faut tester !
Ne pas oublier les limites imposées sur la taille des processus... C'est sur quel OS?
Jacques.
On 5 Sep 2005 04:00:33 -0700, Dav' <dcd@noos.fr> wrote:
Maintenant 15 000 000 de lignes, je ne sais pas si ça va etre faisable
en terme de mémoire !! Avec 80 caracteres par ligne ça fait du 1200
Mo, donc si tu as 2Go de ram ça devrait passer ... Faut tester !
Ne pas oublier les limites imposées sur la taille des processus... C'est
sur quel OS?
Maintenant 15 000 000 de lignes, je ne sais pas si ça va etre faisable en terme de mémoire !! Avec 80 caracteres par ligne ça fait du 1200 Mo, donc si tu as 2Go de ram ça devrait passer ... Faut tester !
Ne pas oublier les limites imposées sur la taille des processus... C'est sur quel OS?
Jacques.
BP
__DATA__ a:1:fr b:2:us d:56:uk e:3:br j:567:nl
Vu que le separateur est fixé ( à ":" ) j'ai fais un split plutot qu'une regexp .
Maintenant 15 000 000 de lignes, je ne sais pas si ça va etre faisable en terme de mémoire !! Avec 80 caracteres par ligne ça fait du 1200 Mo, donc si tu as 2Go de ram ça devrait passer ... Faut tester !
Peut-être en convertissant le fichier en une DB comme SQLite par exemple, puis travailler sur celle-ci serait plus réaliste.
__DATA__
a:1:fr
b:2:us
d:56:uk
e:3:br
j:567:nl
Vu que le separateur est fixé ( à ":" ) j'ai fais un split plutot
qu'une regexp .
Maintenant 15 000 000 de lignes, je ne sais pas si ça va etre faisable
en terme de mémoire !! Avec 80 caracteres par ligne ça fait du 1200
Mo, donc si tu as 2Go de ram ça devrait passer ... Faut tester !
Peut-être en convertissant le fichier en une DB comme SQLite par exemple,
puis travailler sur celle-ci serait plus réaliste.
Vu que le separateur est fixé ( à ":" ) j'ai fais un split plutot qu'une regexp .
Maintenant 15 000 000 de lignes, je ne sais pas si ça va etre faisable en terme de mémoire !! Avec 80 caracteres par ligne ça fait du 1200 Mo, donc si tu as 2Go de ram ça devrait passer ... Faut tester !
Peut-être en convertissant le fichier en une DB comme SQLite par exemple, puis travailler sur celle-ci serait plus réaliste.