如何用ansible剧本替换具有多个特殊字符的行

时间:2019-06-20 18:34:32

标签: ansible escaping

尝试替换具有多个特殊字符的行,该行被ansible解释为转义字符。

尝试使用“ \”和“。”每个字符,并尝试使用!unsafe。

- name: Update file
  replace:
    path: /some/file
    regexp: "*[0-9a-zA-Z._-]* )" #<<=== This is line to be replaced
    replace: "*[0-9a-z._-]* )"   #<<== With this
    backup: yes

出现类似错误

引发错误,v#无效表达式\ r \ nsre_constants.error:无需重复\ r \ n“,” msg“:”模块失败\ n请参见stdout / stderr了解确切错误“,” rc“:1}

2 个答案:

答案 0 :(得分:0)

您应使用每个反斜杠转义特殊字符:

regexp: '\*\[0\-9a\-zA\-Z\._\-\]\* \)'

并且您应该使用单引号。

答案 1 :(得分:0)

对此进行了尝试并奏效了:

regexp: '\*\[0-9a-zA-Z\._-\]\* \)'
replace: '*[0-9a-z._-]* )'