Regexp pour matcher un code postal ? [bash] - Codes et scripts - Linux et OS Alternatifs
Marsh Posté le 27-08-2003 à 16:20:02
bon pour matcher un code postal, c'est
[0-9]*
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)
Marsh Posté le 27-08-2003 à 17:40:47
Je viens de lire le reste de ton topic ( ) 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)
Marsh Posté le 27-08-2003 à 19:08:01
phosphorus68 a écrit : 5 fois [0-9]{5} |
finalement je me suis débrouillé avec excel Je referais un test avec awk, histoire de m'y mettre !
Marsh Posté le 27-08-2003 à 12:53:48
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 ?
---------------
Filmstory : gardez trace des films que vous avez vu ! :D