使用变量1在文件中查找匹配的名称,并使用变量2 shell替换



我的oratab文件有以下内容:

cat /etc/oratab
#
# Multiple entries with the same $ORACLE_SID are not allowed.
#
#
+ASM1:/u01/app/12.2.0.1/grid:N
exaiaddb:/u02/app/oracle/product/12.2.0/dbhome_2:Y
nttest:/u02/app/oracle/product/12.2.0/dbhome_3:Y

变量1:$DB_NAME=nttest

变量2:$DB_UNI_NAME=nttest_iad92

我只是想在上面的文件中找到$DB_NAME,并用$DB_UNI_NAME替换

我尝试了以下操作,但它没有更新文件

sed -i 's/${DB_NAME}/${db_uni_name}/g' oratab

您使用的命令有两个错误:

1.(您在sed命令中使用了变量${db_uni_name}。相反,您应该像上面声明的那样使用DB_UNI_NAME。(见案例差异(

2.(在sed命令中使用双引号(" ")而不是单引号(' ')"确保sed展开变量。

所以,你的命令是:

sed -i "s/${DB_NAME}/${DB_UNI_NAME}/g" oratab

这应该行得通。让我知道。

最新更新