Bonjour,

Je dois créer un script qui collecte des données à partir de 3 fichiers csv en entrée.

Le premier fichier est un planning avec des dates et pour chaque date des traitements et sous-traitements avec commentaires tout cela sur 4 champs séparés par des ;

Fichier 1

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
 
01/12/2010;;;
Action_1;"XXXZZ24";Comment1;"Comment2"
Action_2;"XXXZZ25";Comment1;"Comment2"
Action_3;"XXXZZ26";Comment1;"Comment2"
Action_4;"XXXZZ27";Comment1;"Comment2"
Action_5;"XXXZZ28";Comment1;"Comment2"
Action_6;"XXXZZ29";Comment1;"Comment2"
Action_7;"XXXZZ30";Comment1;"Comment2"
02/12/2010;;;
Action_8;"XXXZZ31";Comment1;"Comment2"
Action_9;"XXXZZ32";Comment1;"Comment2"
Action_0;"XXXZZ33";Comment1;"Comment2"
Action_1;"XXXZZ24";Comment1;"Comment2"
Action_5;"XXXZZ35";Comment1;"Comment2"
Action_6;"XXXZZ36";Comment1;"Comment2"
Action_2;"XXXZZ25";Comment1;"Comment2"
Avec le code ci-dessous j'entre une date et cela me donne les traitements et sous-traitements + commentaires qui correspondent :

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
 
awk 'BEGIN{printf("Entrez la date : "); getline date < "-"}
$0 ~ date {f=1;print;next}
/^[0-9]{2}\//{f=0}
f' fichier1.csv
J'ai ensuite un autre fichier qui contient une liste des traitements et sous traitements (un traitement peut correspondre à plusieurs sous-traitements - ex: Action_1 correspond à XXXZZ24 et XXXZZ44)

Ce sous-traitement est l'élément commun aux trois fichiers dont je dispose en entrée.

Fichier 2

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
 
Action_1; XXXZZ24
Action_1; XXXZZ44
Action_2; XXXZZ25
Action_6; XXXZZ29
Action_3; XXXZZ26
Action_7; XXXZZ30
Enfin, le troisième fichier dont je dispose est un fichier externe résultant du passage de ces traitements à une date donnée (avec heures d'exécution et codes retour au 7è champ) :

Fichier 3

Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
 
"2010/12/02 12:31:54 	End of job";;;;;;;;;
LANCEUR;XXX7724;02/12/2010;12:31:22;02/12/2010;12:32:01;0;;Comment;Traces
Est-ce que quelqu'un surait quel script pourrait :

- demander une date (ça j'ai déjà)
- Afficher les traitements et sous-traitements correspondant à la date entrée (j'ai aussi)
- afficher ensuite les traitements et sous-traitements correspondants à partir du fichier 2
- enfin, faire matcher le résultat de l'assemblage des deux premiers fichiers pour afficher à partir du dernier les traitements et les sous-traitements (avec code retour et heures d'exécution pour chaque traitement)

Le résultat serait :


Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
 
Au 02/12/2010 :
 
"XXX7724" de "Action_1" exécutée OK ou non (en fonction du code retour 0 : OK, 1 : anormal, 3 : KO) démarré à "hh:mm:ss" et terminé à "hh:mm:ss"
Si quelqu'un peut me venir en aide

Thanks