[bash] Regexp pour matcher un code postal ?

Regexp pour matcher un code postal ? [bash] - Codes et scripts - Linux et OS Alternatifs

Marsh Posté le 27-08-2003 à 12:53:48    

: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
Reply

Marsh Posté le 27-08-2003 à 12:53:48   

Reply

Marsh Posté le 27-08-2003 à 16:20:02    

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


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

Marsh Posté le 27-08-2003 à 17:35:05    

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)

Reply

Marsh Posté le 27-08-2003 à 17:40:47    

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
Reply

Marsh Posté le 27-08-2003 à 19:08:01    

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
Reply

Sujets relatifs:

Leave a Replay

Make sure you enter the(*)required information where indicate.HTML code is not allowed