我正在使用 Ansible 在文件上设置一些变量lineinfile
模块。
我遇到的问题是如何拥有一个足够灵活的正则表达式以在字符串中间包含一些空格。请看下面:
- name: Set DB IP in db conn file
lineinfile:
dest=/path/to/db_conn
regexp="{{ item.regexp }}"
line="{{ item.line }}"
with_items:
- { regexp: "^.?dbschema_audit=",
line: "$dbschema_audit=\'{{ db_schema_audit }}\';" }
- { regexp: "^.?dbschema_audit_trail\s\*=",
line: "$dbschema_audit_trail=\'{{ db_schema_audit_trail }}\';" }
我试图更改的文件包含如下行:
$dbschema_audit='a';
$dbschema_audit_trail ='a';
我尝试过不同的变体\s*
with {
, '
and \
似乎没有任何作用。我能从外面得到一些智慧吗?
Ansible playbook 采用 YAML 格式。在双引号标量中,以\
字符是转义序列,但是YAML规范 http://yaml.org/spec/current.html#id2517668 says \s
不是有效的转义序列。
在双引号标量中,您必须编写
"\\s"
或者,在单引号标量中,\
字符没有特殊含义,所以你可以写
'\s'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)