使用sed加入行

时间:2018-04-09 07:44:48

标签: sed echo terraform

我正在尝试配置文件" ../ ansible-provision / test"使用Terraform列表中存储的IP列表:aws_instance.masters.*.private_ip

我只是尝试使用" echo"它的工作原理,如下一个例子所示:

command =  "echo \"${join(" ", aws_instance.masters.*.private_ip)}\" >> ../ansible-provision/test"

在前面的例子中," echo"将aws_instance.masters的IP写入以逗号分隔的文件../ansible-provision/test

我想使用sed而不是echo来做同样的事情。

我想使用sed的原因是因为我可以在特定的行中写出这些IP。

我尝试使用下一个sed命令,但它只写入第一个IP,所以我需要加入该对象的所有IP,就像我在echo命令中那样。

  command =  "sed -i '3s/.*/terraform working ${aws_instance.masters.0.private_ip}/g' ../ansible-provision/test"

1 个答案:

答案 0 :(得分:0)

我刚刚解决了将IP列表加入到用逗号分隔的字符串中,然后将该行写入文件:

  command =  "sed -i '3s/.*/terraform working ${join(" ", aws_instance.masters.*.private_ip)}/g' ../ansible-provision/test"