|
Bas de page | |
---|---|
Auteur | Sujet : [script shell] grep -f sur de grandes quanités de données |
Publicité | Posté le 02-10-2006 à 10:22:49 |
Sve@r |
--------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
aigles | Voici un petit script awk effectue le travail.
--------------- Jean Pierre. |
0x90 → |
matafan | Tu ne veux garder que les lignes du fichier B qui commencent par un numero qui est dans le fichier A, c'est ca ? A ta place je ferais ca en Perl (ou Python, ou Ruby, ou tout autre langage de script). Dans un premier temps tu lis le fichier A ligne par ligne, et tu met toutes les valeurs dans un hash (les valeurs que tu lis sont les clees du hash). Puis tu lis le fichier B ligne par ligne, et a chaque fois tu regardes si le premier champs est dans le hash. Le hash c'est a mon avis la solution la plus rapide (et aussi la plus rapide a coder). Beaucoup plus rapide en tout ca qu'une recherche "a la main" par dichotomie. |
Elmoricq Modérateur | Je suis d'accord, c'est un cas où le shell, puissant et très pratique par ailleurs, montre ici ses limites : il n'est pas fait pour traiter de telles quantités de données (5j ).
Message édité par Elmoricq le 02-10-2006 à 21:27:48 |
0x90 → |
|
matafan | Perl n'a aucun probleme a gerer efficacement des hashs de plusieurs centaines de miliers de clees. C'est fait pour ca. D'ailleurs j'ai fait un petit test. Je genere un fichier a.txt qui contient 120,000 valeurs aleatoire entre 0 et 1,000,000,000, et un fichier b qui contient 10,000,000 lignes commencant par une valeur aleatoire egalement entre 0 et 1,000,000,000 :
Message cité 1 fois Message édité par matafan le 04-10-2006 à 20:35:33 |
Sve@r |
--------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
Publicité | Posté le 04-10-2006 à 08:56:57 |
Taz bisounours-codeur | LC_ALL=C grep -f A B > resultats
|
0x90 → | J'ai testé avec la même quantité de donné (après avoir corrigé un ptit bug ) :
Message édité par 0x90 le 04-10-2006 à 15:02:25 |
aigles | J'ai testé les 3 méthodes awk, perl et grep sur mon système AIX avec le même volume de données (je ne dispose pas de python).
--------------- Jean Pierre. |
Elmoricq Modérateur | Quoiqu'il en soit je ne vois pas comment obtenir les 5j de traitement, même awk est plus rapide, c'est pourtant pas un foudre de guerre |
Sve@r |
--------------- Vous ne pouvez pas apporter la prospérité au pauvre en la retirant au riche. |
aigles |
--------------- Jean Pierre. |
Sujets relatifs | |
---|---|
help correction script | un script pour automatiser l'impression de .pdf ? |
Stockage de données | recherche de données dans excel sans ouvrir les fichiers |
Interdire l'accès a un dossier sauf a un script | AJAX, renvoi de données |
[PHP] adapter un script en une fonction | Script FTP automatisé |
script pour avoir son navigateur en plein page | Conseil sur une stratégie de base de données |
Plus de sujets relatifs à : [script shell] grep -f sur de grandes quanités de données |