найти соответствующее имя в файле, используя переменную 1, и заменить, используя переменную 2 оболочки - PullRequest
0 голосов
/ 26 октября 2018

Мой файл 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 голосов
/ 27 октября 2018

Используемая вами команда имеет 2 ошибки:

1.) Вы использовали переменную ${db_uni_name} в команде sed.Вместо этого вы должны были использовать DB_UNI_NAME, как вы заявили выше.(см. разницу в регистре)

2.) Используйте двойные кавычки (" ") вместо одинарных кавычек (' ') в команде sed." гарантирует, что sed расширяет переменные.

Итак, ваша команда будет:

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

Это должно сработать.Дайте мне знать.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...