我想在配置文件中搜索以下表达式:"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
sed -i ""
,而Linux只允许使用sed -i
。不同平台之间的sed
语法细节也会有所不同,但简单的s/foo/bar/
应该是完全可移植的。 - tripleee