linux - 使用 SED 查找和替换值

标签 linux string bash sed

我有一个包含键值对的文件

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/

相关文章:

linux - 将日期添加到 mysqldump 命令

linux - 从 root 帐户执行 cron 作业是否安全?

php - 如何确定某个数组列的最大长度?

string - 如何判断有多少文件与 unix 中的描述匹配

Javascript:搜索数组以查看它是否包含字符串的一部分

bash - 将所有文件/目录/隐藏文件移动到目录但忽略目标目录?

node.js - 如何使用curl 在我的本地主机 Node 服务器上执行GET?

c++ - 如何安装ConvNet库?

linux - 分区可用空间的排序输出

bash - 禁止在 bash 远程命令执行时显示欢迎消息