Précédent   Forum des professionnels en informatique > Systèmes > Linux > Applications > Shell
Shell Vos questions sur l'utilisation des commandes shell
Partagez cette discussion sur d'autres réseaux sociaux : Viadeo Twitter Google Facebook Digg Delicious MySpace Yahoo
Réponse Proposer ce sujet en actualité
 
Outils de la discussion
Publicité
'
Vieux 23/11/2010, 13h49   #1
Invité de passage
 
Inscription : novembre 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 3
Points : 1
Points : 1
Par défaut Extraction de données d'un fichier csv

Bonjour à tous,

Voici mon dilemme, je ne connais rien en développement shell et on me demande d'extraire des données à partir d'un fichier csv sous Unix pour une date donnée.

Voici les champs contenus dans le fichier csv :

Code :
1
2
Date;Enchaînement;Titre;Libellé ;calendrier;Heure début;Heure fin;Durée estimée;Durée réelle;"Durée ré-évaluée ou 
informations complémentaires";Contraintes, dépendances et criticités;
et voici le contenu du fichier :

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
01/12/2010;;;;;;;;;;;
;bp_101;"IE001 (4 UT)
BP_10101 à BP_10104"; INTERFACE ENTRANTE : TOTO => GAGA;SPF;;;;;;"bg00<nn><zz>.bp
sur bonne ou mauvaise fin de bp_102 (FORMP)";
;bp_209;"IE017 (3 UT)
BP_20901 à BP_20903";INTERFACE ENTRANTE :TOTO => GAGA;SPF;;;;;;"gesiaaaa.bp 
Exclusif";
 
02/12/2010;;;;;;;;;;
;bp_101;"IE001 (4 UT)
BP_10101 à BP_10104"; TOTO : GOGO => GAGA;SPF;;;;;;"bg00<nn><zz>.bp
sur bonne ou mauvaise fin de bp_102 (FORMP)"
;bp_209;"IE017 (3 UT)
BP_20901 à BP_20903";TOTO => GAGA;SPF;;;;;;"gesiaaaa.bp 
Exclusif"
Comme on peut le voir, à chaque date correspondent plusieurs traitements (ex : au 02/12/2010 il y a bp_101 et à la ligne du dessous il y a bp_209, à chaque fois précédé d'un champ vide correspondant à une date...)

Y a-t-il un moyen de créer un shell demandant la date et à partir de la réponse, sortir chaque traitement correspondant ?

Merci d'avance pour votre aide...
freyr est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 23/11/2010, 16h44   #2
Membre éclairé
 
Homme Lilian Herault
Architecte technique
Inscription : juin 2010
Messages : 215
Détails du profil
Informations personnelles :
Nom : Homme Lilian Herault
Âge : 31
Localisation : France

Informations professionnelles :
Activité : Architecte technique
Secteur : Industrie

Informations forums :
Inscription : juin 2010
Messages : 215
Points : 335
Points : 335
Bonjour,

Oui c'est possible.
As-tu déjà essayé de faire quelque chose ?

Ton fichier est-il vraiment séparé en paragraphes ?

Si c'est la cas, tu devrais t'en sortir avec ça:

Code :
1
2
sed -e '/./{H;$!d;}' -e 'x;/01\/12\/2010/!d;' <ton_fichier>
En remplaçant les éléments en rouge par ce qui te convient.

Lilian.
lilian_h est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 24/11/2010, 09h08   #3
Invité de passage
 
Inscription : novembre 2008
Messages : 3
Détails du profil
Informations forums :
Inscription : novembre 2008
Messages : 3
Points : 1
Points : 1
Merci,

On m'a conseillé d'utiliser awk et voici mon script
Code :
1
2
3
4
5
6
7
 
#!/bin/sh
awk 'BEGIN{printf("Entrez la date : "); getline date < "-"}
$0 ~ date {f=1}
f
/^[0-9]{2}\//{f=0}
f' toto.csv
qui donne :
Code :
1
2
3
4
 
$ ./extract.sh
Entrez la date : 02/12/2010
02/12/2010;;;;;;;;;;
=> mais pas les actions contenues sous la date, et uniquement pour la date prise en compte par le getline date dans le fichier csv (exemple fichier csv dessous)

Code :
1
2
3
4
5
6
7
8
9
10
11
12
13
14
02/12/2010;;;;;;;;;;;
;Action_1;; Comment;Comment;;;;;;"File Comment";
;Action_2;; Comment;Comment;;;;;;"Exclusif";
;Action_3;; Comment;Comment;;;;;;"Not exclusif";
;Action_4;; Comment;Comment;;;;;;"Another File Comment";
;Action_5;; Comment;Comment;;;;;;"File Comment";
;Action_6;; Comment;Comment;;;;;;"File Comment";
03/12/2010;;;;;;;;;;;
;Action_1;; Comment;Comment;;;;;;"File Comment";
;Action_2;; Comment;Comment;;;;;;"Exclusif";
;Action_3;; Comment;Comment;;;;;;"Not exclusif";
;Action_4;; Comment;Comment;;;;;;"Another File Comment";
;Action_5;; Comment;Comment;;;;;;"File Comment";
;Action_6;; Comment;Comment;;;;;;"File Comment";
Si quelqu'un voit d'où vient le problème ? Merci
freyr est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité Cette discussion est résolue.
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 08h38.


 
 
 
 
Partenaires

Hébergement Web