使用SED查找和替换值

时间:2017-03-14 17:45:07

标签: 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 的最终输出应该是ENVIRONMENT=staging

server:
      adminConnectors:
        -
          port: 8081
          type: http

如何使用sed命令实现此目的?

1 个答案:

答案 0 :(得分:1)

由于属性文件看起来具有正确的语法,您可以直接获取它,然后替换整个端口行:

source properties.env
sed --in-place "s/port.*/port: $staging_port/" config.yml

这当然是假设"端口" line在配置中只出现一次。