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.
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.
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
Tags sed path shell-script