Sou novo no uso do comando sed e tenho um sql que contém "MONYY" e quero alterar o "MONYY" no arquivo, substituindo-o pelo "MONYY" atual automaticamente.
Usei o seguinte comando e consigo obter o mês e ano anteriores e o mês e ano atuais em letras maiúsculas e agora estou tentando substituir os valores em meu script usando o comando sed, mas nada está acontecendo.
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
Alguém pode me ajudar com o comando sed que estou usando
Responder1
O script acima substituirá cada $date1
por$date2
mas o resultado será impresso em temp
arquivo
Se você quiser alterar as strings emaggdom.sql
você tem que mudar a linha para algo assim:
sed -i 's/$date1/$date2/g' aggdom.sql
da sed
página de manual:
-i[SUFIXO], --in-place[=SUFIXO]
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.
em algum sistema operacional você deve adicionar -e
como opção:
sed -i -e s/$date1/$date2/g aggdom.sql