簡體   English   中英

在ansible中用多個值替換多個模式

[英]replace multiple patterns with multiple values in ansible

我在ansible中使用regex_replace過濾器。 我可以讓它工作,但它真的很麻煩。 這就是我正在做的

- set_fact:
    variable: "{{ value | regex_replace("84","89") | regex_replace("76","78") | regex_replace("45","23"}}"

有沒有辦法,我可以管道 regex_replace 一次並用多個值替換多個模式。

問: “我可以通過管道 regex_replace 一次並用多個值替換多個模式嗎?”

A:不,這是不可能的。 但是你可以在循環中做到這一點。 例如

  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"

或者,為了最小化代碼,下面的任務給出了相同的結果

    - 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM