【发布时间】:2021-08-03 11:09:22
【问题描述】:
我有一个名为 local.conf 的文件:
db.default.driver="com.mysql.jdbc.Driver"
db.default.url="jdbc:mysql://localhost:3306/xyz31"
db.default.user="ron"
db.default.password=""
这里xyz31 是变量${DB_NAME}。我只需要更新${DB_NAME} 即xyz31 (在这种情况下),但这取决于${DB_NAME} 的当前值是什么,并且需要更新为用户输入的任何值,例如例如:abc22.
db.default.driver="com.mysql.jdbc.Driver"
db.default.url="jdbc:mysql://localhost:3306/abc22"
db.default.user="ron"
db.default.password=""
有没有办法做到这一点?
【问题讨论】:
-
关闭者:这个问题的答案不必在
sed;将其与纯sed问题混为一谈会大大减少可能的答案集。 -
例如...假设任何程序正在读取(和重新读取)配置文件本身就是一个 shell 脚本,将配置文件的第 2 行更改为使用参数扩展应该会自动产生所需的效果没有更多代码:
db.default.url="jdbc:mysql://localhost:3306/${DB_NAME:-xyz31}" -
这不起作用,它不知道要编辑哪个文件并且没有文件名
-
需要更多信息。读取配置文件的程序的名称是什么?该程序是用什么编程语言编写的?
-
Re "...而且没有文件名":不明白你的意思;请指定您所指的文件名。