sed -e debe usarse en lugar de sed -r, que no existe.
Dylan Daniels
1
@DylanDaniels Según man sedUbuntu, la -ropción significa "usar expresiones regulares extendidas". Entonces, el comando dado funciona bien, aunque no necesita las características de las expresiones regulares extendidas para funcionar.
g
bandera para la sustitución global, tampoco necesita la-r
opción aquí.Respuestas:
Debe agregar el
g
modificador para que sed realice una sustitución global del contenido del búfer de patrón:Para obtener una documentación fantástica sobre sed, consulte http://www.grymoire.com/Unix/Sed.html . Esta bandera global se explica aquí: http://www.grymoire.com/Unix/Sed.html#uh-6
La documentación oficial de
GNU sed
está disponible en http://www.gnu.org/software/sed/manual/fuente
sed -E 's,foo,bar,g'
no hace lo global. Si lo cambiased -E -e 's,foo,bar,g'
, funciona.Tienes que poner un
g
al final, significa "global":fuente
man sed
Ubuntu, la-r
opción significa "usar expresiones regulares extendidas". Entonces, el comando dado funciona bien, aunque no necesita las características de las expresiones regulares extendidas para funcionar.