Как мне использовать sed для изменения моих файлов конфигурации с гибкими ключами и значениями?

Я хочу найти в конфигурационном файле это выражение: "central.database". Затем я хочу изменить настройку, связанную с «central.database» на «SQLTEST».

Изначально макет конфигурационного файла будет выглядеть следующим образом:

central.database = SQLFIRSTTEST

Я хочу, чтобы он выглядел так после замены sed :

central.database = SQLTEST

Я делаю это в сценарии bash, любые предложения, рекомендации или альтернативные решения приветствуются!

(На самом деле и central.database , и SQLTEST берутся из переменных bash здесь.)


Мой текущий код (третья попытка):

sshRetValue=$(ssh -p "35903" -i $HOME/sshids/idrsa-1.old ${1} <<EOF
        sed -i "s/^\($CENTRAL_DB_NAME\s*=\s*\).*\$/\1$CENTRAL_DB_VALUE/" /home/testing.txt;
        echo $?
EOF
)

Сообщение об ошибке:

Pseudo-terminal will not be allocated because stdin is not a terminal.
sed: -e expression #1, char 58: unknown option to `s'
-bash: line 3: EOF: command not found
38
задан fedorqui 29 August 2016 в 12:52
поделиться