sed를 사용하여 SQL 스크립트의 경로를 변경하세요.

sed를 사용하여 SQL 스크립트의 경로를 변경하세요.

bash 스크립트에서 oracle sql 스크립트의 경로를 변경하려고 합니다.

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

스크립트를 실행하면 다음 오류가 발생합니다. sed: -e 표현식 #1, 문자 2: 명령 뒤의 추가 문자

누구든지 올바른 sed 명령을 사용하도록 도와줄 수 있습니까?


추가 정보

명확히 하자면, Schema-install.sql 파일에는 Oracle 데이터베이스가 저장되는 위치를 정의하는 줄이 있습니다.

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

이 값을 변경하고 싶습니다.오크내 입력 변수 ORACLE_SID_VALUE의 값으로.

답변1

나는 노력할 것이다:

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

sed경로 정의에서 /로 인해 혼동됩니다.

답변2

귀하의 질문에서 제가 이해하는 한, 귀하는 교체하려고합니다.

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

통과

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

이것이 당신이 원하는 일이라면 다음을 사용하여 달성할 수 있습니다.

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

관련 정보