Bonjour,
J'ai un fichier de données formaté comme suit:
etc...
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
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:
Le problème c'est que mon fichier contient plusieurs 100ene de lignes et que ça met des heures!!!
Code : Sélectionner tout - Visualiser dans une fenêtre à part
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
Avez vous des pistes pour que le filtre soit plus rapide?
Merci et très bonne journée
Partager