2010-05-27 7 views
0

J'ai besoin de savoir s'il y a un moyen de remplacer une chaîne par @ ou * ou? ou & sans pour mettre le « \ » avant qu'il nechar unique qui doit être remplacé sans mettre le ""

Exemple

perl -pe 'next if /^#/; s/\@d\&/new_value/ if /param5/' test 

dans cet exemple besoin de remplacer le @d & avec new_value
mais je dois mettre le « \ » avant @ ou &
peut être autrement sans mettre le "\" parce que j'ai char aléatoire qui peut être dans l'ancienne valeur.

+0

Cela ressemble à une question pour Stack Overflow. –

Répondre

1
perl -pe 'next if /^#/; my $regex=q/@d&/; s/$regex/new_value/ if /param5/' test 
+0

Cela ne résout pas le problème pour les métacaractères regex comme. *? + [] {}. Ce que vous cherchez est quotemeta'. – tripleee

Questions connexes