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

  FORUM HardWare.fr
  Linux et OS Alternatifs
  Codes et scripts

  [bash] Regexp pour matcher un code postal ?

 


 Mot :   Pseudo :  
 
Bas de page
Auteur Sujet :

[bash] Regexp pour matcher un code postal ?

n°314452
freds45
Posté le 27-08-2003 à 12:53:48  profilanswer
 

:hello: all
 
Voilà, j'ai un fichier constitué de plusieurs lignes d'adresses, du genre
0042 RUE DE LA MAIRIE 12345 QQUE PART
 
le but du truc, c'est d'écrire un script qui va me découper cette adresse en 3 parties :
- Le numéro et le nom de la rue
- le code postal
- la ville
 
J'ai commencé à écrire un petit script qui lit le fichier ligne par ligne, mais là où je sèche, c'est pour la découpe :/ Je pensais utiliser un cut, en mettant comme séparateur le code postal, mais je sais pas si c'est une bonne méthode...
Qqun a une idée à proposer ?
 :hello:


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
mood
Publicité
Posté le 27-08-2003 à 12:53:48  profilanswer
 

n°314544
freds45
Posté le 27-08-2003 à 16:20:02  profilanswer
 

bon pour matcher un code postal, c'est  
 
[0-9]*


---------------
Filmstory : gardez trace des films que vous avez vu ! :D
n°314579
phosphorus​68
Pseudo à n°
Posté le 27-08-2003 à 17:35:05  profilanswer
 

5 fois [0-9]{5}
 
cut c'est pas mal mais la ville est pas en 1 seul mot donc tu as bien un problème :/
 
Par contre s'il y a plusieurs bonnes pioches par ligne avec grep, le code postal est le dernier d'entre eux (je te laisse gamberger pour traduire ça en script! Awk le fera mais il y a peut-être plus simple)

n°314581
phosphorus​68
Pseudo à n°
Posté le 27-08-2003 à 17:40:47  profilanswer
 

Je viens de lire le reste de  ton topic ( :ange:) et AWK me semble tout indiqué.
Il bosse ligne par ligne de toute façon et les mots sont déjà dans des variables séparées.
 
1/ Obtenir le nombre de mots dans la ligne en cours (on utilise un compteur ligne en plus, à incrémenter à la main, pour savoir à quelle ligne on est)
2/ En commençant par la fin, chercher le code postal
3/ Une fois trouvé, stocker dans un tableau mono-dimensionnel CP[ligne]. Du mot suivant jusqu'au dernier mot (oui, Jean-Pierre) sotcké dans ville[ligne]. Ce qui précède le CP va dans adresse[].
 
 
 
edit: un lien si tu démarres avec awk http://www.ai.univ-paris8.fr/~fb/Cours/MRD/awk.html (le rép. ~fb répond plus :/ dsl)


Message édité par phosphorus68 le 27-08-2003 à 17:49:19
n°314604
freds45
Posté le 27-08-2003 à 19:08:01  profilanswer
 

phosphorus68 a écrit :

5 fois [0-9]{5}
 
cut c'est pas mal mais la ville est pas en 1 seul mot donc tu as bien un problème :/
 
Par contre s'il y a plusieurs bonnes pioches par ligne avec grep, le code postal est le dernier d'entre eux (je te laisse gamberger pour traduire ça en script! Awk le fera mais il y a peut-être plus simple)


 
finalement je me suis débrouillé avec excel :) Je referais un test avec awk, histoire de m'y mettre :wahoo: !


---------------
Filmstory : gardez trace des films que vous avez vu ! :D

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

  [bash] Regexp pour matcher un code postal ?

 

Sujets relatifs
Une partie du code source de SCO !!! (MDR)nb argument script bash
Script bash et existence de fichier[Bash] Problème de script dans un if.. fi
fork bash[bash]conditionner l'execution d'une commande à la taille d'un fichier
[bash] rappeler une commande[bash] [new-b] Variables qui ne sont pas interpretées
remplacer un caractère spécial en utilisant son code ascii [ sed ][bash] au login, .bashrc n'est pas exécuté :-(
Plus de sujets relatifs à : [bash] Regexp pour matcher un code postal ?


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