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