[英]How to escape 1 or more whitespaces in a regex in the lineinfile module of Ansible?
我正在使用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*
,似乎沒有任何效果。 我可以從那里獲得一些智慧嗎?
Ansible劇本采用YAML格式。 在雙引號標量中,以\\
字符開頭的字符序列是轉義序列,但YAML規范說\\s
不是有效的轉義序列。
在雙引號標量中,你必須寫
"\\s"
或者,在單引號標量中, \\
字符沒有特殊含義,因此您可以編寫
'\s'
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.