使用sed命令更改变量值

沙罗兹·佩尔瓦兹(Shahroz Pervaz)

我的文件中有类似的内容,我想更改一些值

我的档案资料

variable "my_vnets" {
  default = {
    transit_vnet = {
      name       = "dummy"
      cidr       = "11.1.1.1.1."
      is_transit = false
    }
    spoke1_vnet = {
      name       = "dummy2"
      cidr       = "1.1.1.1.1"
      is_transit = false
    }
  }
}

预期产量

variable "my_vnets" {
  default = {
    transit_vnet = {
      name       = "NewName"
      cidr       = "11.1.1.1.1."
      is_transit = true
    }
    spoke1_vnet = {
      name       = "NewName2"
      cidr       = "2.2.2.2"
      is_transit = false
    }
  }
}

我正在尝试这样的事情,但没有运气

sed -i "s/\"my_vnets\" { default = \"""\" }/\"my_vnets\" { default = \""NewName"\" }/g"
查尔斯·达菲

通常,应避免使用无结构意识的工具来编辑结构化文件。但是,如果没有用于解析和生成此格式的结构化工具,请考虑以下内容:

sed -r -e '/^[[:space:]]+name[[:space:]]+=/ { s/dummy/NewName/; }' \
       -e '/transit_vnet = [{]/,/[}]/       { s/is_transit = false/is_transit = true/; }'

...替换dummyNewName只在开始的行name = ; is_transit = falseis_transit = true只有经过匹配transit_vnet = {和匹配之前}

本文收集自互联网,转载请注明来源。

如有侵权,请联系 [email protected] 删除。

编辑于
0

我来说两句

0 条评论
登录 后参与评论

相关文章