Sed dans un script php

Fermé
zelosien Messages postés 42 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 24 avril 2013 - 26 avril 2011 à 18:25
zelosien Messages postés 42 Date d'inscription jeudi 4 décembre 2008 Statut Membre Dernière intervention 24 avril 2013 - 26 avril 2011 à 20:55
Bonjour,

J'ai un problème :) avec une commende Shell dans un fichier php

J'ai Une des ligne d'un fichier CSV :

"110224";"ASG42W";"100038234";"ALESSI";"100000837";"ACCESSOIRE CUISINE";" "BUNNY & CARROT" PORTE ROULEAU";"";"";"0";"0";"0";"5";"accessoir CUISINE";"";"";"36.00";"0";"";"";"";"0";"0"

Et je veux sa:

"110224";"ASG42W";"100038234";"ALESSI";"100000837";"ACCESSOIRE CUISINE";" 'BUNNY & CARROT' PORTE ROULEAU";"";"";"0";"0";"0";"5";"accessoir CUISINE";"";"";"36.00";"0";"";"";"";"0";"0"

c'est a dire je veux des ' ' au lieu des " " à ""BUNNY & CARROT" PORTE ROULEAU"

J'ai donc utilisé expression régulière:

shell_exec("sed -r 's/(;\"[^;]*)\"([^;]*)\"([^;]*\";)/\1\2\3/g' monfichier");

La commende me sélectionne bien se que je veux mais:

- au lieu de "'BUNNY & CARROT' PORTE ROULEAU" --> sa m'affiche 3 petits carrés avec 4 chiffres dedans (sur une page web qui pour moi représente \1\2\3)
- au lieu de "'BUNNY & CARROT' PORTE ROULEAU" --> sa m'affiche sho stx etx (avec notpad idem)

donc quelqu'un sait pourquoi ?

bien sur si vous avez une meilleur expression régulière que la mienne ne vous gênez surtout pas !!!

Merci d'avance d'une réponse rapide svp svp svp:D


ps: si je fait sa shell_exec("sed -r 's/(;\"[^;]*)\"([^;]*)\"([^;]*\";)/\1\'\2\'\3/g' monfichier"); pour rajouter les ' ' à \2 sa ne marche plus ! Donc une idée pour sa aussi ?

5 réponses

zipe31 Messages postés 36402 Date d'inscription dimanche 7 novembre 2010 Statut Contributeur Dernière intervention 27 janvier 2021 6 417
26 avril 2011 à 18:43
Salut,

Essaye ça :

sed -r 's/(.*" ")([^"]*)(".*)/\1'\''\2'\''\3/'

;-))
0