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

时间:2018-10-26 19:59:12

标签: shell unix

我的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 个答案:

答案 0 :(得分:1)

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

1。)您在${db_uni_name}命令中使用了变量sed。相反,您应该使用上面声明的DB_UNI_NAME。 (请视情况而定)

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

因此,您的命令将是:

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

这应该有效。让我知道。