Substituindo string em um script usando sed

0

Eu sou novo em usar o comando sed e eu tenho um sql que contém "MONYY" e eu quero mudar o "MONYY" no arquivo, substituindo-o com o atual "MONYY" automaticamente.

Eu usei o seguinte comando e posso obter o mês e ano anteriores e o mês e o ano atuais em maiúsculas e agora estou tentando substituir os valores no meu script usando o comando sed, mas nada está acontecendo.

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

echo $date1

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

echo $date2

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

Alguém pode me ajudar com o comando sed que estou usando

    
por user342220 08.07.2014 / 11:01

1 resposta

1

O script acima substituirá todos os $date1 por $date2

mas o resultado será impresso em temp file

Se você quiser alterar as sequências em aggdom.sql

você tem que mudar a linha para algo assim:

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

da página sed man:

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

         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ê precisa adicionar -e como uma opção:

sed -i -e s/$date1/$date2/g aggdom.sql
    
por 08.07.2014 / 11:14

Tags