Ansible替换和括号"["

Buz*_*zut 4 regex yaml ansible

我正在尝试使用Ansible修改配置文件,但由于括号被视为正则表达式元素,因此它们似乎没有被考虑在内.

但是,如果我试图逃避它们,我有一个语法错误......它应该如何工作?

# does nothing
regexp: "# unicorn['worker_processes'] = 2"

# error
regexp: "# unicorn\['worker_processes'\] = 2"

# error
regexp: '# unicorn\[\'worker_processes\'\] = 2'
Run Code Online (Sandbox Code Playgroud)

dor*_*ack 6

你正在谈论的正则表达式是字符串文字.这意味着你应该逃避方括号之前的反斜杠,如下所示:

regexp: '# unicorn\\[\'worker_processes\'\\] = 2'
Run Code Online (Sandbox Code Playgroud)

更好的是:

regexp: "# unicorn\\['worker_processes'\\] = 2"
Run Code Online (Sandbox Code Playgroud)