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 28/01/2011, 15h55   #1
Invité de passage
 
Inscription : janvier 2011
Messages : 1
Détails du profil
Informations forums :
Inscription : janvier 2011
Messages : 1
Points : 0
Points : 0
Par défaut transformer un fichier csv en un autre avec awk

Bonjour à tous,

J'aimerais écrire un script en awk qui lit un premier csv qui liste les clients où le séparateur est ";" et crée en sortie un deuxième csv qui se compose d'un ensemble de champs différent de celui du premier csv et dont les lignes dépendent du fait que le client est particulier ou bien une société (champ "civility").

Exemple :
Fichier csv input :
Code :
1
2
3
4
5
"FIRST_NAME";"LAST_NAME";"CIVILITY";"GENDER";"NCLI"
"Alain";"Bernard";"Monsieur";"M";"1.25265849"
"Catherine";"Devos";"Madame";"F";"1.25265859"
"Ines";"lombard";"Mademoiselle";"F";"1.25265837"
"Groupe";"Automobile";"Societe";;"1.25265839"
Fichier csv output :
Code :
1
2
3
4
5
"FIRST_NAME";"LAST_NAME";"Num_client";"Num_client_societe"
"Alain";"Bernard";"1.25265849";
"Catherine";"Devos";"1.25265859";
"Ines";"lombard";"1.25265837";
"Groupe";"Automobile";;"1.25265839"
Donc si le client est particulier, c'est la colonne "Num_client" qui sera rempli par la valeur à partir du premier csv sinon c'est la colonne "Num_client_societe" qui sera remplie.

Merci de votre aide
nizartl est déconnecté   Envoyer un message privé Réponse avec citation 00
Vieux 28/01/2011, 16h02   #2
Membre Expert
 
Avatar de jabbounet
 
frederic frances
Inscription : juin 2009
Messages : 1 703
Détails du profil
Informations personnelles :
Nom : frederic frances
Âge : 36

Informations forums :
Inscription : juin 2009
Messages : 1 703
Points : 2 115
Points : 2 115
pas besoin de awk, sed suffit pour le faire.

Code fichier.sed :
1
2
3
4
5
6
7
 
# Chaines a remplacer dans le fichier.
s/"CIVILITY";"GENDER";//
s/"Monsieur";"M";//
s/"Madame";"M";//
s/"Mademoiselle";"F";//
s/"Societe";//

Code :
1
2
 
sed -f fichier.sed fichier.csv
__________________
BAZAR est un joyeux bordel improvisé ! Tous les mardis.
http://www.improetcompagnie.com/publ...ctacles-6.html

Citation:
Envoyé par Isaac Asimov
Pour réussir, il ne suffit pas de prévoir. Il faut aussi savoir improviser
Pour les utilisateurs d'emacs:
http://www.emacswiki.org/

Attends de voir ce qui vas sortir de:
http://www.pushmid.com
jabbounet est déconnecté   Envoyer un message privé Réponse avec citation 10
Réponse Proposer ce sujet en actualité
Outils de la discussion



Fuseau horaire GMT +2. Il est actuellement 03h52.


 
 
 
 
Partenaires

Hébergement Web