sed -e doit être utilisé à la place de sed -r, qui n'existe pas.
Dylan Daniels
1
@DylanDaniels Selon man sedUbuntu, l' -roption signifie "utiliser des expressions régulières étendues". Ainsi, la commande donnée fonctionne correctement, même si elle n'a pas besoin des fonctionnalités des expressions régulières étendues pour fonctionner.
g
indicateur pour la substitution globale, vous n'avez pas non plus besoin de l'-r
option ici.Réponses:
Vous devez ajouter le
g
modificateur pour que sed effectue une substitution globale du contenu du tampon de motif:Pour une documentation fantastique sur sed, consultez http://www.grymoire.com/Unix/Sed.html . Ce drapeau global est expliqué ici: http://www.grymoire.com/Unix/Sed.html#uh-6
La documentation officielle de
GNU sed
est disponible sur http://www.gnu.org/software/sed/manual/la source
sed -E 's,foo,bar,g'
ne fait pas la chose globale. Si vous le changez,sed -E -e 's,foo,bar,g'
cela fonctionne.Il faut mettre un
g
à la fin, ça veut dire "global":la source
man sed
Ubuntu, l'-r
option signifie "utiliser des expressions régulières étendues". Ainsi, la commande donnée fonctionne correctement, même si elle n'a pas besoin des fonctionnalités des expressions régulières étendues pour fonctionner.