|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Invité de passage
![]() Inscription : février 2003 Messages : 7 ![]() |
Bonjour,
J'ai actuellement un fichier d'entrée de 5 000 000 de lignes environ du type : A;B;C;D;E... A;B;C;D;F... B;C;D;E;F... Ce fichier doit être décomposé en sous-fichiers selon une clé définie par exemple les 2 premiers champs et, ce qui est mon pb J'ai essayé en shell script, puis en awk mais les temps de traitement sont toujours trop lents. Quelle est la méthode la plus efficace pour effectuer un tel traitement ? et quelle durée puis-je espérer pour effectuer ce traitement ? Merci d'avance. |
|
|
00
|
|
|
#2 |
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Es-tu sûr que le code de ton awk est optimisé au maximum ?
Si ce n'est pas indiscret, peux-tu le mettre en ligne, au cas où
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
|
|
00
|
|
|
#3 | ||
|
Invité de passage
![]() Inscription : février 2003 Messages : 7 ![]() |
Un extrait du code utilisé :
Code :
|
||
|
|
00
|
|
|
#4 |
|
Candidat au titre de Membre du Club
![]() Inscription : juillet 2007 Messages : 34 ![]() |
Moi en shell...
Je verrais bien l'utilisation suivante... un cat fic.txt un cut -d";" -f1 (pour recuperer toute la 1ere col) un cut -d";" -f2 (.....) bref...en gros utiliser cut...avec delimiteur ; ou sinon, awk avec delimiteur |
|
|
00
|
|
|
#5 | ||
|
Membre expérimenté
![]() Inscription : mars 2007 Messages : 469 ![]() |
Ce qui est assez coûteux, c'est le double accès sur les données :
1er par awk 2ème par "while read" Code :
awk -F"?" '{ print $1,$2,$3,$3,$4,$5,$6 }' $Nom | while read -r Bloc1 Col6 Col7 Coll8 Col9 Col10 Bloc2 http://www.shellunix.com/awk.html http://lea-linux.org/cached/index/Dev-awk.html http://pwet.fr/man/linux/commandes/posix/awk Obs : ${Col4} et ${Col5} utilisées et pas déclarées... Code :
__________________
Loi de Murphy: La Théorie c'est quand ça ne marche pas mais que l'on sait pourquoi. La Pratique c'est quand ça marche mais qu'on ne sait pas pourquoi. Quand la théorie rejoint la pratique ça ne marche pas et on ne sait pas pourquoi. |
||
|
|
00
|
|
|
#6 |
|
Invité de passage
![]() Inscription : février 2003 Messages : 7 ![]() |
Merci beaucoup pour tes liens.
Je suis en cours de tests pour tout exécuter en awk. Rq : Pour les Col4 et Col5, j'ai un peu modifié le script avant le post pour ne pas tout afficher d'où quelques pbs non présents dans la version originale. |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com