使用 sed 加入行

Join lines using sed

我正在尝试为文件“../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"

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

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