Forum |  HardWare.fr | News | Articles | PC | S'identifier | S'inscrire | Shop Recherche
1800 connectés 

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script bash : récuperer des données dans un fichier

 



 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

Script bash : récuperer des données dans un fichier

n°1109303
LoW-iK
Posté le 01-02-2009 à 17:45:37  profilanswer
 

Bonjour et merci d'avance pour vos réponses ;)
 
donc voilà j'ai affaire à des grands fichiers contenants ce type de données :
 
30058;Mlle;AMANDA;KERNE;09/09/1986;927-45;Cours semestriels;19/12/2008
30081;Mlle;YOON;SU HYOUN;04/01/1985;927-51;Formations société;19/12/2008
 
je cherche à extraire de chaque ligne le 3eme, 4eme, 5eme et 8eme champs (séparés par des points virgules) puis les écrire dans un nouveau fichier qui sera du type :
 
AMANDA;KERNE;09/09/1986;19/12/2008
YOON;SU HYOUN;04/01/1985;19/12/2008
 
autrement dit un script bash qui me vire le 1er, 2eme, 6eme et 7eme champs
 
je n'ai que de vagues notions de programmation, ça me parait pas compliqué mais je suis incapable de pondre un tel script ...
 
une idée ?
 
merci

mood
Publicité
Posté le 01-02-2009 à 17:45:37  profilanswer
 

n°1109307
Taz
bisounours-codeur
Posté le 01-02-2009 à 17:54:48  profilanswer
 

awk -F';' ...
 
t'as plein de cours sur awk sur l net.
 
Ou bien fait du perl.

n°1109310
ogaby
Posté le 01-02-2009 à 18:03:00  profilanswer
 

awk serait ici plus simple et rapide: http://www.funix.org/fr/unix/awk.htm
 
awk -F';' définit le point virgule comme séparateur de champs.
 
awk -F';' '{print $3}' <fichier> te fait afficher le 3ème champs de <fichier>
 
essaie également
awk -F";" '{print $3 $4}' <fichier>  
awk -F";" '{print $3";"$4}' <fichier>

n°1109321
LoW-iK
Posté le 01-02-2009 à 18:57:38  profilanswer
 

merci à Taz et ogaby
 
voici le script final
 
#!/bin/bash
awk -F";" '{print $3";"$4" "$5" "$8}' etudiants > ./etudiants.1

n°1109369
ogaby
Posté le 01-02-2009 à 21:50:12  profilanswer
 

LoW-iK a écrit :

merci à Taz et ogaby
 
voici le script final
 
#!/bin/bash
awk -F";" '{print $3";"$4" "$5" "$8}' etudiants > ./etudiants.1


De rien mais t'aurais pas oublier des points virgules?
 
Ton fichier est certainement un fichier d'excel ou oo calc. Si tu rajoutes les points virgules ente les champs et que tu enregistres dans <fichier>.csv , tu pourras l'ouvrir sans qu'on te demande de le convertir.

n°1109394
LoW-iK
Posté le 02-02-2009 à 07:51:33  profilanswer
 

ogaby a écrit :


De rien mais t'aurais pas oublier des points virgules?
 
Ton fichier est certainement un fichier d'excel ou oo calc. Si tu rajoutes les points virgules ente les champs et que tu enregistres dans <fichier>.csv , tu pourras l'ouvrir sans qu'on te demande de le convertir.


merci du conseil ogaby, si je n'ai pas mis tous les points virgules, c'était juste pour une meilleure lisibilité du fichier, en fait ce n'est pas encore la vraie version finale mais juste une première étape  
... à suivre ...


Aller à :
Ajouter une réponse
  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  Script bash : récuperer des données dans un fichier

 

Sujets relatifs
Cherche fichier PPD pour Epson SX 200erreur dans un script perl
Script pour compresser des fichiers (texte) tous les jours?Parser basique en bash (sed ??)
recupérer mon pseudo sur hardware.frcherche CMS permettant de présenter les données d'utilisateur locaux
Partage fichier linpus/xp wifiVIM récupérer nom et chemin des sous-fenêtre et position du curseur
RESOLU Suggestions pour trouver le plus grand fichierRécupérer un argument
Plus de sujets relatifs à : Script bash : récuperer des données dans un fichier


Copyright © 1997-2018 Hardware.fr SARL (Signaler un contenu illicite / Données personnelles) / Groupe LDLC / Shop HFR