[英]replace multiple patterns with multiple values in ansible
I am using regex_replace
filter in ansible.我在ansible中使用regex_replace
过滤器。 i can make it work, but its really cumbersome .我可以让它工作,但它真的很麻烦。 This is how i am doing这就是我正在做的
- set_fact:
variable: "{{ value | regex_replace("84","89") | regex_replace("76","78") | regex_replace("45","23"}}"
Is there a way, i can pipe regex_replace one time and replace multiple patterns with multiple values.有没有办法,我可以管道 regex_replace 一次并用多个值替换多个模式。
Q: "Can I pipe regex_replace one time and replace multiple patterns with multiple values?"问: “我可以通过管道 regex_replace 一次并用多个值替换多个模式吗?”
A: No. It's not possible. A:不,这是不可能的。 But you can do it in the loop.但是你可以在循环中做到这一点。 For example例如
vars:
my_var: "ABCDEFGH"
tasks:
- set_fact:
my_var: "{{ my_var | regex_replace(item.regex, item.replace) }}"
loop:
- {regex: "A", replace: "1"}
- {regex: "C", replace: "3"}
- {regex: "E", replace: "5"}
- debug:
var: my_var
gives给
"my_var": "1B3D5FGH"
Or, to minimize the code, the task below gives the same result或者,为了最小化代码,下面的任务给出了相同的结果
- set_fact:
my_var: "{{ my_var | regex_replace(item.0, item.1) }}"
loop:
- ["A", "1"]
- ["C", "3"]
- ["E", "5"]
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.