Précédent   Forum des professionnels en informatique > Systèmes > Linux
Linux Forum d'entraide sur le système Linux. Avant de poster -> Tutoriels Linux, F.A.Q Linux
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 26/11/2010, 17h40   #1
Invité de passage
 
Hassan LAHJOUJI
Inscription : novembre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Hassan LAHJOUJI

Informations forums :
Inscription : novembre 2010
Messages : 6
Points : 0
Points : 0
Par défaut Problème lors du découpage d'un fichier CVS

Bonjour à tous, je suis nouveau dans ce forum et je voulais savoir si vous pouviez me donner une solution à mon problème.

Mon problème est le suivant :

J'ai un fichier CSV qui contient les enregistrements suivants :

Code :
1
2
3
4
5
6
KALIM;12/01/2010;Voiture
ADAM;16/01/2010;Moto
DODO;12/01/2010;BIp
KALIM;12/01/2010;Voiture
ADAM;16/01/2010;Moto
DODO;18/01/2010;BIp
Le but c'est de découper ce fichier CSV en sous fichier CVS par date.

Le résultat souhaité est :

Code :
1
2
3
4
1er fichier CVS contient : 
KALIM;12/01/2010;Voiture
DODO;12/01/2010;BIp
KALIM;12/01/2010;Voiture
2éme fichier CSV contient :
Code :
1
2
ADAM;16/01/2010;Moto
ADAM;16/01/2010;Moto
et le 3éme contient :
J'ai essayé d'utiliser la commande csplit mais j'arrive pas à résoudre le problème avec.

Merci d'avance.
lahjouji.hassan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 26/11/2010, 19h51   #2
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
avec awk :


Code :
1
2
3
4
5
6
7
8
9
 
BEGIN{
FS=";"
}
{
        mydate=$2
        mydate=gsub("/","-",mydate)
        print  $0 >> mydate".cvs"
}
becket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/11/2010, 11h27   #3
Invité de passage
 
Hassan LAHJOUJI
Inscription : novembre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Hassan LAHJOUJI

Informations forums :
Inscription : novembre 2010
Messages : 6
Points : 0
Points : 0
J'ai essayé ton code mais le système me génère l'erreur suivante :

Code :
1
2
3
4
5
syntax error The source line is 1.
 The error context is
 <<<             >>> BEGIN
 awk: Quitting
 The source line is 1
lahjouji.hassan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 11h38   #4
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
Désolé, je n'ai pas de boule de cristal. Tu vas devoir donner plus d'information ....
becket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 12h15   #5
Invité de passage
 
Hassan LAHJOUJI
Inscription : novembre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Hassan LAHJOUJI

Informations forums :
Inscription : novembre 2010
Messages : 6
Points : 0
Points : 0
Le but c'est de créer plusieurs fichiers csv par date (c'est un champ qui se trouve au niveau du fichier d'entrée) à partir d'un fichier d'entrée
lahjouji.hassan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 12h23   #6
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
Et tu penses que le script que je t'ai proposé fait le café ? Explique moi ce que tu fais avec le plus de détails possibles
becket est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 12h35   #7
Invité de passage
 
Hassan LAHJOUJI
Inscription : novembre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Hassan LAHJOUJI

Informations forums :
Inscription : novembre 2010
Messages : 6
Points : 0
Points : 0
ben, j'ai un fichier en entrée nommé exemple.txt qui contient les enregistrement suivant :
Code :
1
2
3
4
5
6
7
8
 
aaa;12/07/2010;bbb;
aaa;16/07/2010;bbb;
aaa;12/07/2010;bbb;
aaa;12/07/2010;bbb;
aaa;16/07/2010;bbb;
aaa;18/07/2010;bbb;
aaa;12/07/2010;bbb;
Je lance la commande awk suivante:

Code :
1
2
3
4
5
6
awk 'FS=";"
{       
        mydate=$2
        mydate=gsub("/","-",mydate)
        print  $0 >> mydate".cvs"
}' exemple.txt
par la suite le systéme me généré un message d'erreur comme quoi le fichier nommé mydate".cvs" est inexistant, et lorsque j'ai changé le mydate".cvs" par "resultat.cvs" ca marche, mais il copie tout les enregistrements sans prendre en considérations les dates.

Le but c'est de créer plusieurs fichier par date, et script que vous m'avez proposés crée un seul, je sais que je vous dérange je suis vraiment désolé.
lahjouji.hassan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 12h51   #8
Invité de passage
 
Hassan LAHJOUJI
Inscription : novembre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Hassan LAHJOUJI

Informations forums :
Inscription : novembre 2010
Messages : 6
Points : 0
Points : 0
Voilà je cherche à découper un fichier csv et j'ai cru comprendre que le awk pourrait être une bonne solution.
Seulement je suis déjà pas vraiment fort en ksh, je suis vraiment un niewbie total en awk, et je n'ai rien
compris aux quelques exemples que j'ai trouvé sur le net, voilà donc pourquoi je viens vous demander de l'aide ^^"

Mon fichier csv se présente comme suit :

Code :
1
2
3
4
5
6
7
8
aaa;12/07/2010;bbb;
aaa;16/07/2010;bbb;
aaa;12/07/2010;bbb;
aaa;12/07/2010;bbb;
aaa;16/07/2010;bbb;
aaa;18/07/2010;bbb;
aaa;12/07/2010;bbb;
etc....
Et je dois obtenir autant de fichier par date(qu'on pourra nommer resultat12/07/2010.csv, resultat16/07/2010.csv,resultat18/07/2010.csv)

resultat12/07/2010.csv contiendra :

Code :
1
2
3
4
aaa;12/07/2010;bbb;
aaa;12/07/2010;bbb;
aaa;12/07/2010;bbb;
aaa;12/07/2010;bbb;
resultat16/07/2010.csv contiendra :
Code :
1
2
3
 
aaa;16/07/2010;bbb;
aaa;16/07/2010;bbb;
resultat18/07/2010.csv contiendra :


j'espère que vous saurez m'aidez, je vous en remercie d'avance
lahjouji.hassan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 13h00   #9
Membre Expert
 
Avatar de becket
 
Frédéric Brugmans
Informaticien multitâche
Inscription : février 2005
Messages : 661
Détails du profil
Informations personnelles :
Nom : Frédéric Brugmans

Informations professionnelles :
Activité : Informaticien multitâche

Informations forums :
Inscription : février 2005
Messages : 661
Points : 1 196
Points : 1 196
Code :
1
2
3
4
5
6
7
8
9
 
BEGIN{
FS=";"
}
{
         mydate=$2
         gsub("/","-",mydate)
        print  $0 >> mydate".cvs"
}
becket est déconnecté   Envoyer un message privé Réponse avec citation 10
Vieux 29/11/2010, 13h14   #10
Invité de passage
 
Hassan LAHJOUJI
Inscription : novembre 2010
Messages : 6
Détails du profil
Informations personnelles :
Nom : Hassan LAHJOUJI

Informations forums :
Inscription : novembre 2010
Messages : 6
Points : 0
Points : 0
Merci beaucoup pour ton aide
lahjouji.hassan est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 29/11/2010, 15h05   #11
Responsable Modération
 
Avatar de ok.Idriss
 
Homme Idriss Neumann
Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)
Inscription : février 2009
Messages : 1 972
Détails du profil
Informations personnelles :
Nom : Homme Idriss Neumann
Âge : 21
Localisation : France, Essonne (Île de France)

Informations professionnelles :
Activité : Consultant en SSII et étudiant au CNAM Paris (ingénieur SI)

Informations forums :
Inscription : février 2009
Messages : 1 972
Points : 5 939
Points : 5 939
Bonjour.

Citation:
Envoyé par lahjouji.hassan Voir le message
Merci beaucoup pour ton aide
Le problème est-il ?

Cordialement,
Idriss
ok.Idriss est déconnecté   Envoyer un message privé Réponse avec citation 00
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 21h25.


 
 
 
 
Partenaires

Hébergement Web