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 $date1
por$date2
pero el resultado se imprimirá en temp
el 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 sed
la 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 -e
como opción:
sed -i -e s/$date1/$date2/g aggdom.sql