Reemplazo de cadena en un script usando sed

Reemplazo de cadena en un script usando sed

Soy nuevo en el uso del comando sed y tengo un SQL que contiene "MONYY" y quiero cambiar el "MONYY" en el archivo reemplazándolo automáticamente con el "MONYY" actual.

He usado el siguiente comando y puedo obtener el mes y año anterior y el mes y año actual en mayúsculas y ahora estoy tratando de reemplazar los valores en mi script usando el comando sed pero no sucede nada.

date1=$ date +"%b%y"|sed 's/\(.*\)/\U\1/'

echo $date1

date2=$ date -d ' -1 month ' +"%b%y"|sed 's/\(.*\)/\U\1/'

echo $date2

sed 's/$date1/$date2/g' aggdom.sql > temp

¿Alguien puede ayudarme con el comando sed que estoy usando?

Respuesta1

El script anterior sustituirá cada uno $date1por$date2

pero el resultado se imprimirá en tempel archivo

Si desea cambiar las cadenas enaggdom.sql

tienes que cambiar la línea a algo como esto:

sed -i 's/$date1/$date2/g' aggdom.sql 

desde sedla página de manual:

-i[SUFIJO], --in-place[=SUFIJO]

         edit files in place (makes backup if extension  supplied).   The
          default  operation  mode  is  to  break symbolic and hard links.
          This can be changed with --follow-symlinks and --copy.

en algún sistema operativo hay que agregar -ecomo opción:

sed -i -e s/$date1/$date2/g aggdom.sql

información relacionada