本文介绍了在ansible中用多个值替换多个模式的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
我在 ansible 中使用 regex_replace
过滤器.我可以让它工作,但它真的很麻烦.这就是我的做法
I am using regex_replace
filter in ansible. 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"}}"
有没有办法,我可以通过管道 regex_replace 一次并用多个值替换多个模式.
Is there a way, i can pipe regex_replace one time and replace multiple patterns with multiple values.
推荐答案
A:不,这是不可能的.但是你可以在循环中做到这一点.例如
A: No. It's not possible. 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
给予
"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"]
这篇关于在ansible中用多个值替换多个模式的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持!