我有一个包含键值对的文件
properties.env
development_port=8080
development_type=tcp
staging_port=8081
development_type=http
我需要从 properties.env 中读取值,并根据一些环境变量值将其替换到另一个文件中,比如 ENVIRONMENT=staging/development
config.yml
server:
adminConnectors:
-
port: 18001
type: http
config.yml 的最终输出应该是 if ENVIRONMENT=staging
server:
adminConnectors:
-
port: 8081
type: http
我如何使用 sed 命令实现此目的?
最佳答案
由于属性文件看起来具有正确的语法,您可以直接获取它,然后替换整个端口行:
source properties.env
sed --in-place "s/port.*/port: $staging_port/" config.yml
当然,这假设“端口”行在您的配置中只出现一次。
关于linux - 使用 SED 查找和替换值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/42793041/