Bonsoir tout le monde !

Je ne suis pas un développeur de talent (en fait je ne suis pas développeur du tout, mais je développe un peu quand même, alors ça crée des problèmes ). Voilà ce que j'essaye de faire : j'ai un très gros fichier que je veux subdiviser en petits fichiers. Une ligne de ce fichier = une donnée. Il est formaté de la manière suivante :
(Date,Heure,donnée1,donnée2,donnée3)
jj/mm/aaaa,hh:mm:ss.ssssss,xxxxx.xx,xxxxx.xx,xxxxx.xx
ex : 28/05/2012,12:33:02.000,817375.767,9471391.780,33.000
Je voudrais donc créer un fichier par nuit. Donc pas de minuit à 23:59, mais de 12:00 à 11:59 le lendemain. Je vous donne mon script :
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
#!/bin/ksh
 
SOIR=27/05/2012 # Initialisation : première date que je vais considérer
 
# je veux une arborescence du type : année/mois
mkdir -p $DIR_DATA/$(echo $SOIR|awk -F'/' '{print $3}')/$(echo $SOIR|awk -F'/' '{print $2}')
fichier_out=$DIR_DATA/$(echo $SOIR|awk -F'/' '{print $3}')/$(echo $SOIR|awk -F'/' '{print $2}')/"$(echo $SOIR|sed -e "s./._.g").txt"
 
# Je boucle sur les dates UNIQUES differentes dans le gros fichier à diviser, et j'enlève la première de ces dates puisqu'on s'en est déjà occupé juste avant.
for data_file in $(tail -n +4 $DIR_DATA/Week22_33_Congo_GNSS-2.txt | cut -d, -f1 | uniq | grep -v "27/05/2012")
do
   MATIN=$data_file # Donnée du jour suivant (dont je ne veux récupérer que la première partie à l'aide du grep)
   grep -E "^($SOIR,[12-23])|($MATIN,(0[0-9])|[10-11]):" $DIR_DATA/test.txt > $fichier_out
   SOIR=$MATIN # Donnée du jour "précédent" (au passage suivant de la boucle)
   # Je crée un nouveau dossier si je change de mois
   mkdir -p $DIR_DATA/$(echo $SOIR|awk -F'/' '{print $3}')/$(echo $SOIR|awk -F'/' '{print $2}')
   # Je crée mon nouveau fichier
   fichier_out=$DIR_DATA/$(echo $SOIR|awk -F'/' '{print $3}')/$(echo $SOIR|awk -F'/' '{print $2}')/"$(echo $SOIR|sed -e "s./._.g").txt"
done
Mais ça ne marche pas. Je soupçonne la regex d'être fausse, mais comme je n'arrive pas à la corriger si c'est bien le cas.

Toute aide est la bienvenue, et sera de facto appréciée

Merci !