Trie d'un fichier de données avec une colonne date
Bonjour,
J'ai un fichier de données formaté comme suit:
Code:
1 2
| 1323 0.95 0.0012 0.95 0.0008 0.95 0.0009 0.97 0.0014 0.95 0.0013 0.93 0.0013 104.22 2 01-JAN-2009 RD9A
1326 0.95 0.0010 0.94 0.0017 0.96 0.0004 0.97 0.0011 0.92 0.0010 0.00 0.0000 92.64 2 19-FEB-2009 SAB5 |
etc...
la 15eme colonne est une date au format un peu exotique... Bref,
Mon but est de filtrer les données comprises entre 2 dates. J'ai déjà fait un petit bash qui lit le fichier ligne par ligne, et, qui compare la date dans une fonction:
Code:
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29
|
date_is_beetwin()
{
DATE_ENTREE=$(date -d "$1" +%Y-%m-%d)
TIMEST_ENTREE=$(date -d "$DATE_ENTREE" +%s)
DATE_DEBUT=$(date -d "$2" +%Y-%m-%d)
TIMEST_DEBUT=$(date -d "$DATE_DEBUT" +%s)
DATE_FIN=$(date -d "$3" +%Y-%m-%d)
TIMEST_FIN=$(date -d "$DATE_FIN" +%s)
test $(($TIMEST_DEBUT - $TIMEST_ENTREE)) -le 0 -a $(($TIMEST_ENTREE - $TIMEST_FIN)) -le 0 && return 0 || return 1
}
while read ligne
do
set $(echo $ligne)
pDate=$(eval echo ${16})
pFreq=$(eval echo ${14})
if date_is_beetwin $pDate $dateMin $dateMax ; then
echo "date:${pDate} dans tmpTot.dat"
echo $ligne >> tmpTot.dat
else
echo "date:${pDate} exclue"
fi
done < exportFiltre.dat |
Le problème c'est que mon fichier contient plusieurs 100ene de lignes et que ça met des heures!!! :aie:
Avez vous des pistes pour que le filtre soit plus rapide?
Merci et très bonne journée