Forum Programmation.shell problème avec un sed

Posté par  .
Étiquettes : aucune
0
20
août
2006
Bonjour,
J'ai un fichier fich qui contient les données suivantes:



cat fich
put '/*-- ' pepe ' -- */';

put "put " var1 ' +(-1) ";" /* car ' pepe ' */ '; var5 /* ppppp; put '; run;'; */

put "put " var1 ' +(-1) ";" /* car ' pepe ' */ ';

if last then put 'v;' ; v2 /* eeeee; put '; run;'; */

pour supprimer ou modifié la chaine /* qui se trouve entre les quotes simples ou doubles.
j'utilise la commande sed:


sed "s,\('[^']*\)/\*\([^']*'\),\1A\2,g" fic
put 'A-- ' pepe ' -- */';

put "put " var1 ' +(-1) ";" A car ' pepe ' */ '; var5 A ppppp; put '; run;'; */

put "put " var1 ' +(-1) ";" A car ' pepe ' */ ';

if last then put 'v;' ; v2 A eeeee; put '; run;'; */


mais mon problème c'est que la chaine /* qui se située à la derniere ligne
et qui ne se trouve pas entre quotes est remplacé par la chaine A.

Merci d'avance
  • # A confirmer...

    Posté par  . Évalué à 2.

    Bonjour,

    Je crois que l'expression donnée à sed fonctionne aussi pour la dernière ligne car:
    ... ' ; v2 /* eeeee; put '....
    entre bien dans le périmètre de "s,\('[^']*\)/\*\([^']*'\),\1A\2,g"...

    Par contre, je n'ai pas (là) d'idée pour éviter cela.

    Bon courage !

    Cdlt,

Suivre le flux des commentaires

Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.