¿Cómo puedo get mi command sed para hacer cambios permanentes en un file?

es posible? Leí en alguna parte que el siguiente command lo haría:

sed-e [command] [file]

pero parecía hacer lo mismo que solo

sed [command] [file]

(no guardó los cambios). ¿Hay alguna manera de hacer esto usando sed?

Creo que estás buscando -i :

  -i[SUFFIX], --in-place[=SUFFIX] edit files in place (makes backup if SUFFIX supplied) 

Por ejemplo:

 $ cat foo.txt hello world $ sed -i 's/o/X/g' foo.txt $ cat foo.txt hellX wXrld 

Si proporciona un sufijo, creará un file de respaldo:

 $ ls foo.txt $ sed -i.bak 's/o/X/g' foo.txt $ ls foo.txt foo.txt.bak 

El file de input se modifica y se crea una copy de security que contiene los datos del file original.

También tenga en count que esto es para GNU sed , existen pequeñas diferencias en el formatting entre diferentes implementaciones sed .

Estas soluciones funcionan para HPUX (UNIX):

1. { rm test1.sh && awk '{gsub("Error", "NO_Error", $0); print}' > test1.sh; } < test1.sh { rm test1.sh && awk '{gsub("Error", "NO_Error", $0); print}' > test1.sh; } < test1.sh { rm test1.sh && awk '{gsub("Error", "NO_Error", $0); print}' > test1.sh; } < test1.sh :

2. perl -pi -e 's/Error/NO_Error/g' test1.sh

3. sed 's/Error/NO_Error/g' test1.sh | tee test1.sh sed 's/Error/NO_Error/g' test1.sh | tee test1.sh

-e opción es para ejecutar múltiples commands sed

 sed -e 's/linux/unix/' -e 's/os/OS/' file.txt 

considere file.txt como

 linux os 

entonces O / P es

 unix os 

-i opción guarda los cambios de forma permanente …