|
Publicité ' | |||||||||||||||||||||||
|
|
#1 |
|
Membre Expert
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 451 ![]() |
Bonjour,
Je voudrais trouver l'équivalent sous sed de l'expression régulière suivante : Code :
s/prefix_(?!(motif1|motif2))[^"]+/prefix_motif1/g Apparement le "negative lookahead" (?!...) n'est pas connu de sed. Pourtant j'utilise bien les modificateurs -r et -e, donc ça devrait reprendre les regex de Perl mais non. Donc si vous avez des idées, je suis preneur. Merci d'avance, Loceka. |
|
|
00
|
|
|
#2 | ||
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 538 ![]() |
Code :
|
||
|
|
00
|
|
|
#3 |
|
Membre Expert
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 451 ![]() |
D'accord, je me suis mal expliqué mais si c'était aussi simple je n'aurais pas utilisé le negative lookahead :
Je veux exécuter la regex suivante s/prefix_(?!(toto|tata))[^"]+/prefix_toto/g avec sed. Appliquée à la chaîne '"prefix_toto"', elle ne fait rien. Appliquée à la chaîne '"prefix_tata"', elle ne fait rien. Appliquée à la chaîne '"prefix_titi"', elle la remplace par '"prefix_toto"'. Pour information, je ne compte pas l'utiliser sur "prefix_titi", ni sur "prefix_motif3", ce sont juste des noms abstraits pour exposer le problème. |
|
|
00
|
|
|
#4 | |
|
Expert Confirmé Sénior
![]() francois Ingénieur systèmes et réseaux Inscription : juillet 2006 Messages : 3 538 ![]() |
Citation:
et le patern de remplacement après |
|
|
|
00
|
|
|
#5 |
|
Membre Expert
![]() Tlouye Ci Inscription : mars 2004 Messages : 1 451 ![]() |
gné ?
Tu veux dire écrire ça ? Code :
sed "s/prefix_[^tototata]/prefix_toto/" my_file Pour info c'est faisable avec Perl en ligne de commande : Code :
perl -pe 's/prefix_(?!(motif1|motif2))[^"]+/prefix_motif1/g' fichier |
|
|
00
|
Copyright © 2000-2012 - www.developpez.com