Extraire les infos des entètes d'une série de
romaingeol
-
romaingeol Messages postés 1 Statut Membre -
romaingeol Messages postés 1 Statut Membre -
Bonjour,
Voila, je dois créer une base de données regroupant les informations contenues dans les entètes de fichiers ASCII.
Mes fichiers sont classés dans des sous répertoires, j'aurais donc besoin d'un code qui parcourt les sous-dossiers et extrait les infos de chaque entète.
Les entètes se présentent sous formes de champs: date, localisation, distance etc.
Les entètes ont toutes le m^me format, plusieurs champs sont présents sur une m^me ligne.
Comment faire pour extraire la valeur (binaire ou chaine de caractère) faisant suite au champ "NOM", par exemple? mais sans déborder sur le champ suivant....
Je n'ai pas mis le nez dans les shells depuis bien longtemps mais je crois me souvenir que l'on peut faire ce genre de chose avec awk.
Ce serait super si quelqu'un me donnait un exemple de scipt permettant d'extraire deux ou trois champs des ent^tes d'une dizaine de fichiers répartis dans des sous répertoires.
Merci beaucoup
Voila, je dois créer une base de données regroupant les informations contenues dans les entètes de fichiers ASCII.
Mes fichiers sont classés dans des sous répertoires, j'aurais donc besoin d'un code qui parcourt les sous-dossiers et extrait les infos de chaque entète.
Les entètes se présentent sous formes de champs: date, localisation, distance etc.
Les entètes ont toutes le m^me format, plusieurs champs sont présents sur une m^me ligne.
Comment faire pour extraire la valeur (binaire ou chaine de caractère) faisant suite au champ "NOM", par exemple? mais sans déborder sur le champ suivant....
Je n'ai pas mis le nez dans les shells depuis bien longtemps mais je crois me souvenir que l'on peut faire ce genre de chose avec awk.
Ce serait super si quelqu'un me donnait un exemple de scipt permettant d'extraire deux ou trois champs des ent^tes d'une dizaine de fichiers répartis dans des sous répertoires.
Merci beaucoup
A voir également:
- Extraire les infos des entètes d'une série de
- Extraire une video youtube - Guide
- Extraire le son d'une vidéo - Guide
- Télécharger idm gratuitement sans numéro de série - Télécharger - Téléchargement & Transfert
- Extraire texte d'une image - Guide
- Extraire image pdf - Guide
7 réponses
Bonsoir,
essaie le lien suivant, cela peut peut-être repondre à ta question .
Kev
http://www.commentcamarche.net/forum/affich 4661807 recup de donnees depuis un claseur excel?dernier#dernier
Récup de données depuis un claseur excel
essaie le lien suivant, cela peut peut-être repondre à ta question .
Kev
http://www.commentcamarche.net/forum/affich 4661807 recup de donnees depuis un claseur excel?dernier#dernier
Récup de données depuis un claseur excel
Salut,
T'aurais pas un modèle de fichier à nous afficher plutôt avec un exemple de ce que tu veux récupéer, ce serait beaucoup plus simple pour nous...
T'aurais pas un modèle de fichier à nous afficher plutôt avec un exemple de ce que tu veux récupéer, ce serait beaucoup plus simple pour nous...
Voici un exemple d'entète, je voudrai extraire la date, la latitude, longitude etc...
===============================================================
---- EVENT
Source : Sismalp
Localisation :
Julian Date : 1989 6 - Time : 20: 51: 34
Latitude : 43.537 - Longitude : 5.234 - Depth : 0.0
Magnitude Local : 2.46
---- STATION :CBB - NETWORK :Sismalp
Latitude : 44.597 - Longitude : 6.855 - Elevation : 1990.0
Depth : 0.000 - Site : Near_sou - Sensor : WIL1
Distance to event : 175.3
Event to station azimuth : 47.23
Station to event azimuth : 228.36
---- RECORD
Julian Day : 6/1989
Time : 20:51:34.289
Sample rate : 0.02000 - Nb points : 2048
Componente : Z - Unit : c
===================================================================
Il s'agit de fichier ascii et non pas de classeurs excell
Merci
===============================================================
---- EVENT
Source : Sismalp
Localisation :
Julian Date : 1989 6 - Time : 20: 51: 34
Latitude : 43.537 - Longitude : 5.234 - Depth : 0.0
Magnitude Local : 2.46
---- STATION :CBB - NETWORK :Sismalp
Latitude : 44.597 - Longitude : 6.855 - Elevation : 1990.0
Depth : 0.000 - Site : Near_sou - Sensor : WIL1
Distance to event : 175.3
Event to station azimuth : 47.23
Station to event azimuth : 228.36
---- RECORD
Julian Day : 6/1989
Time : 20:51:34.289
Sample rate : 0.02000 - Nb points : 2048
Componente : Z - Unit : c
===================================================================
Il s'agit de fichier ascii et non pas de classeurs excell
Merci
Ok, mais il aurait fallu le format de sortie désiré aussi... et savoir si tu veux toutes les "Latitudes, Longitudes, etc." ou simplement certaines quand elles sont répétées plusieurs fois...
En attendant, voilà un exemple :
En attendant, voilà un exemple :
awk -F"-" '/Date/ { print $1 } ; /Latitude/ { printf " %s\n%s\n",$1,$2 }' fichier
Julian Date : 1989 6
Latitude : 43.537
Longitude : 5.234
Latitude : 44.597
Longitude : 6.855A adapter ;-))
Vous n’avez pas trouvé la réponse que vous recherchez ?
Posez votre question
Bon c déja pas mal
Je voudrais differencier les 2 Lat et Lon et créer un fichier texte en colonnes de type:
Date heure Lat Lon Depth Station Lat(station) Lon(station)
Faire une base de données quoi...
Peux tu me détailler la commande awk que tu m'as donné?
Je voudrais differencier les 2 Lat et Lon et créer un fichier texte en colonnes de type:
Date heure Lat Lon Depth Station Lat(station) Lon(station)
Faire une base de données quoi...
Peux tu me détailler la commande awk que tu m'as donné?
Avec la commande que tu m'as donné on extrait le champ en entier, est-il possible de ne garder que la valeur (eliminer "latitude par exemple")?
Merci
Merci
$ awk -F":" '/Date/ { print substr($2,2,7),$3":"$4":"$5 }' plop
1989 6 20: 51: 34
$ awk -F": " '/Latitude/ { print substr($2,1,6) }' plop
43.537
44.597Par contre pour le reste tu devrais attendre que "dubcek" passe dans le coin, c'est lui le spécialiste avec "awk" (sans oublier le reste aussi ;-) ).
;-))
Voila J'ai écris un script "awk" qui me permet d'extraire les informations d'un fichier:
BEGIN {FS="- "};
{OFS=":"};
NR==1 {printf "%s:", FILENAME};
NR==33 {printf "%s:", $1};
NR==34 {printf "%s:", $1};
NR==35 {printf "%s:", $1};
NR==36 {printf "%s:", $1};
NR==24 {printf "%s:%s:%s :",$1,$2,$3};
/Magnitude/ {printf "%s :", $1};
NR==27 {printf "%s:%s:%s :",$1,$2,$3};
END {printf "\n"}
je le lance en faisant awk -f toto.awk input.asc > toto.txt
Comment faire maintenant pour que je scan tout les fichiers et les répertoire d'un répertoire donné?
BEGIN {FS="- "};
{OFS=":"};
NR==1 {printf "%s:", FILENAME};
NR==33 {printf "%s:", $1};
NR==34 {printf "%s:", $1};
NR==35 {printf "%s:", $1};
NR==36 {printf "%s:", $1};
NR==24 {printf "%s:%s:%s :",$1,$2,$3};
/Magnitude/ {printf "%s :", $1};
NR==27 {printf "%s:%s:%s :",$1,$2,$3};
END {printf "\n"}
je le lance en faisant awk -f toto.awk input.asc > toto.txt
Comment faire maintenant pour que je scan tout les fichiers et les répertoire d'un répertoire donné?