Le 15/09/2012 11:00, Jérôme UZEL a écrit :
> Le 15/09/2012 10:42, ALD a écrit :
>> les données proviennent d'un fichier qui a, à l'origine, été saisi sur
>> un tableur, et ne comportant qu'un seul champ pour le CP et la Ville.
>>
>> Je n'ai pas le fichier originel de ce tableur mais seulement un fichier
>> texte et les séparateurs sont des ";".
>
> Je pense que ca devrait marcher
> sed "s/^\([^;]*\);\([^;]*\);\([^;]*\)\;\([^ ]*\)\ /\1;\2;\3;\4;/g"
> on récupere a partir du début de la ligne ^
> tous les caractères sauf le point virgule [^;]*
> on l'identifie pour pouvoir le remplacer \( \) ensuite
> puis on 'consomme' le ; et on recommence 2 fois
> => on a dans \1 \2 et \3 les 3 premiers champs
> on fait la même chose en s'arretant a l'espace et on a le code postal
> dans \4
> on affiche les 4 champs avec le séparateur. Le denier est ; et pas ' '
>
> Jérôme
>
Ouaip! ça marche impec. J'ai juste corrigé pour que le ";" soit en 3éme
position et pas en 4é, mais ça prouve que je commence à comprendre les
regex: j'ai pu modifier.
en meme temps, c'était bien expliqué.
Merci