Alterar caminho no script sql com sed

2

Estou tentando mudar o caminho em um script sql oracle de um script bash.

read -e -p "Enter the ORACLE SID: " -i "orcl" ORACLE_SID_VALUE
sed -i "DEFINE tsdir = '/u02/app/oracle/oradata/orcl';/c\DEFINE tsdir = '/u02/app/oracle/oradata/${ORACLE_SID_VALUE}'" schema-install.sql

quando executo o script, recebo o seguinte erro: sed: -e expressão # 1, char 2: caracteres extras após o comando

alguém pode me ajudar com o comando sed correto?

mais informações

apenas para esclarecer: no arquivo schema-install.sql, há uma linha definindo onde o banco de dados oracle será armazenado.

DEFINE tsdir = '/ u02 / app / oracle / oradata / orcl';

Eu quero alterar o valor orcl para o valor que eu digito na variável ORACLE_SID_VALUE.

    
por Lars Grotell 10.09.2014 / 11:49

2 respostas

1

Eu tentaria:

sed -i -e "/DEFINE tsdir = /c\
DEFINE tsdir = '/u02/app/oracle/oradata/${ORACLE_SID_VALUE}'
" schema-install.sql

sed é confundido com / na definição do caminho.

    
por 10.09.2014 / 12:11
0

Pelo que entendi da sua pergunta, você está tentando substituir

DEFINE tsdir = '/u02/app/oracle/oradata/orcl'

por

DEFINE tsdir = '/u02/app/oracle/oradata/${ORACLE_SID_VALUE}'

Se é isso que você está tentando fazer, você pode conseguir isso usando

sed -i "s#DEFINE tsdir = '/u02/app/oracle/oradata/orcl'#DEFINE tsdir = '/u02/app/oracle/oradata/${ORACLE_SID_VALUE}'#" schema-install.sql
    
por 10.09.2014 / 12:33