je me répond tout seul :+)
je change, je ne passe plus par le while qui prend 14 minutes, je passe par un awk et un grep.
maintenant, cela me prend ...... 7 secondes.
donc voici le script:
#! /bin/sh
FICHIER=MonFichier.in
date # juste pour savoir combien de temps ça dure
PARAM1=`awk -F";" '{print $1}' $FICHIER |sed s/\"//g |uniq` # recupere 1 seule fois le champ qui m'interesse
for i in $PARAM1 # pour chaque "mot"
do
TITRE="===== champ $PARAM1 ====="
echo $TITRE >fictmp2/$i.csv # juste pour info en premiere ligne du fichier
grep \^\"$i\" $FICHIER >>fictmp2/$i.csv # recherche toutes les lignes qui commencent par $i
done
date # juste pour savoir combien de temps ça dure
il ne me reste plus qu'a faire un test pour que \^\"$i\" soit bien numerique.
Poste le Thursday 5 November 2009 16:29:19