Remplacer une expression régulière par une autre - Perl - Programmation
Marsh Posté le 13-01-2009 à 11:14:53
dans chaine j'ai a=(b)
j'ai essaye cat chaine | perl -p -e 's/[+-=]\([*^\)]\)[+-=]/$1$2$3/g'
sans succes
Marsh Posté le 13-01-2009 à 13:42:44
pour stocker les occurences trouvées dans les variables, il faut les protéger avec des parenthèses
du coup ton truc se transforme en :
Code :
|
Marsh Posté le 13-01-2009 à 15:10:36
d'accord merci je crois avoir compris j'essaie des commandes et je vous tiens au courant
Marsh Posté le 13-01-2009 à 17:07:33
merci
Code :
|
semble marcher du moins sur un exemple simple cela fait ce que je veux
Marsh Posté le 13-01-2009 à 10:51:38
Bonjour à tous
je cherche a remplacer dans un fichier une expression régulière par une autre
je sais les suprimer avec un sed mais pas les remplacer
en gros j'ai une expression reguliere :
[+-=_] ( .* ) [+-=_] et il faut que je retire les parentheses, en fait il faut que je retire la premiere occurence de la parenthese ouvrante et la derniere de la parenthese fermante.
avant la parenthese j'ai soit un + un - un = ou un espace et après la parenthese fermante j'ai la meme chose
j'en ai besoin pour comparer du code en gros si on ecri a=(b) ou a=b c'est la meme chose ...
il ne me reste plus que ce probleme a gérer, j'ai deja gerer,
j'ai reformater mes deux fichiers a comparer avec la commande perl -p -e 's/\n/ /g' ( suppression des retour a la ligne ) j'ai egalement virer tous les commentaires avec un sed
mais la je bloque et je n'y connait rien en perl.
merci d'avance