Entourer code postal avec sed

Résolu
Poireau007 Messages postés 85 Statut Membre -  
lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   -
Bonjour,
Bon j'ai un ptit soucis d'expression régulière, décidement je m'ensortirais jamais !

j'ai ce type de ligne :

'Magasin A',' 25 Av Jean Jaur\'e8s 08000 Charleville M\'e9zi\'e8re','T\'e9l : 01 01 01 01 01'),\


que je vaux changer en :

'Magasin A',' 25 Av Jean Jaur\'e8s ','08000',' Charleville M\'e9zi\'e8re','T\'e9l : 01 01 01 01 01'),\


Grosso modo j'entoure le code postal avec : ','

j'essaie de récupérer le cp avec [0-9][0-9][0-9][0-9][0-9] mais après je bloque...

des idées ?
Configuration: Ibook ^^

2 réponses

  1. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
     
    Salut,

    [tmpfs]$ echo $A
    Magasin A',' 25 Av Jean Jaurès 08000 Charleville Mézière','Tél : 01 01 01 01 01'),\
    
    [tmpfs]$ echo $A | sed "s/ \([0-9]\{5\}\) /','\1','/"
    Magasin A',' 25 Av Jean Jaurès','08000','Charleville Mézière','Tél : 01 01 01 01 01'),\
    
    [tmpfs]$

    ;-))
    1
    1. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
       
      ;-)

      En fait on peut faire comme ça, non?
      Pas besoin de capture
      $ cat plop | sed "s/[0-9]\{5\}/','&','/"
      'Magasin A',' 25 Av Jean Jaur\'e8s ','08000',' Charleville M\'e9zi\'e8re','T\'e9l : 01 01 01 01 01'),\

      0
    2. Poireau007 Messages postés 85 Statut Membre 15
       
      Arf oui c'est ça !
      Merci !
      en fait c'est 5 chiffres à la suite que je ne savait pas dire ! apparement c'est :\{5\}
      Pas trop clair dans la doc :( ccm
      0
    3. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898
       
      Salut,

      Disons que j'ai juste pris en compte les espaces avant et après au cas où on trouverait une autre chaîne de caractères avec au moins 5 chiffres (comme par exemple un numéro de téléphone sans espaces, ex 0101010101)...
      0
    4. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571 > jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention  
       
      moi aussi ;-)
      0
    5. jipicy Messages postés 40842 Date d'inscription   Statut Modérateur Dernière intervention   4 898 > lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention  
       
      Ben voui j'avais vu ;-)

      Donc ta demande est du coup un peu farfelue ;-D
      0
  2. lami20j Messages postés 21506 Date d'inscription   Statut Modérateur, Contributeur sécurité Dernière intervention   3 571
     
    Salut,

    Comme ça?

    ~$ cat plop
    'Magasin A',' 25 Av Jean Jaur\'e8s 08000 Charleville M\'e9zi\'e8re','T\'e9l : 01 01 01 01 01'),\
    ~$ cat plop | sed -r "s/ *([0-9]{5}) */ ','\1',' /"
    'Magasin A',' 25 Av Jean Jaur\'e8s ','08000',' Charleville M\'e9zi\'e8re','T\'e9l : 01 01 01 01 01'),\
    ~$ cat plop | sed "s/ *\([0-9]\{5\}\) */ ','\1',' /"
    'Magasin A',' 25 Av Jean Jaur\'e8s ','08000',' Charleville M\'e9zi\'e8re','T\'e9l : 01 01 01 01 01'),\

    0
    1. Poireau007 Messages postés 85 Statut Membre 15
       
      oui c'est ça :)
      0