sed
doesn't haven an -i
option.
Probablemente esté utilizando alguna variante específica del fabricante de sed
. Si desea utilizar las extensiones no estandarizadas específicas del proveedor de su variante no estandarizada específica de proveedor de sed
, debe asegurarse de instalar dicha variante no estandarizada específica del proveedor y debe asegurarse de llamar al es y no llame a la versión compatible con los estándares de sed
que es parte de su entorno operativo.
Tenga en cuenta que, como siempre, al utilizar extensiones no estandarizadas específicas del proveedor, no hay absolutamente ninguna garantía de que su código sea portátil, que es exactamente el problema que está viendo.
En este caso particular, sin embargo, hay una solución mucho mejor: use la herramienta adecuada para el trabajo. sed
es un editor de secuencia (es por eso que es llamado "sed"), es decir, es para editar secuencias, no archivos.Si desea editar archivos, utilice un editor archivo, como ed
:
ed FILE <<-HERE
,s/.shayam.//g
w
q
HERE
Ver también:
Usando mktemp ayuda a asegurar que no pisamos sin darse cuenta, en cualquier archivo con nombre FILE.new ... tmp = $ (mktemp) && sed -e 's /.* shayam. * // g' ARCHIVO> "$ tmp" && mv "$ tmp" ARCHIVO; rm "$ tmp" 2>/dev/null –