【发布时间】:2019-04-10 02:49:13
【问题描述】:
如何在此处删除 data-us 之后的单词并在 jinja2 中使用 regex_replace 打印 data-us.example.com。
mouliveera@xxxx$ echo data-us-b.example.com | sed "s/-[a-z]*\(\.example.com\)/\1/"
data-us.example.com
mouliveera@xxxx$ echo data-us-lb.example.com | sed "s/-[a-z]*\(\.example.com\)/\1/"
data-us.example.com
mouliveera@xxxx$ echo data-us-a.example.com | sed "s/-[a-z]*\(\.example.com\)/\1/"
data-us.example.com
【问题讨论】:
-
我试过
endpoint=data-us-lb.example.com; {{端点 | regex_replace("s/-[a-z]*(\." + example.com + ")", "\\1")}},但没有运气。 -
您的问题似乎与
sed相关,但您已将其标记为ansible和jinja2。 Ansible 在哪里进入这个问题? -
我只是用 sed 来显示我的要求。我需要帮助才能在 jinja2 中使用 regex_replace。
-
正如@larsks 所说,您实际上需要包含您尝试使用的文字剧本,因为在 yaml 中,引用的样式非常重要。即使在您的
sed示例中,您也应该使用单引号,因为双引号内的反斜杠与单引号内的反斜杠的解释不同(就像马特 P 的回答一样,它出现在我的评论中间;-))