gpt4 book ai didi

ansible - 如何在ansible替换模块中转义+字符

转载 作者:行者123 更新时间:2023-12-05 04:47:54 26 4
gpt4 key购买 nike

我试图在配置文件中的一行中添加尾部斜杠,但没有进行更改,即使没有返回错误。这是我到目前为止尝试过的

- replace:
path: /etc/aide.conf
regexp: "/var/log LOG+ANF+ARF"
replace: "/var/log/ LOG+ANF+ARF"
backup: yes

正如我所注意到的,问题在于 + 字符。

我试过像这样转义它们:

- replace:
path: /etc/aide.conf
regexp: "/var/log LOG\+ANF\+ARF"
replace: "/var/log/ LOG\+ANF\+ARF"
backup: yes

但随后出现“发现未知转义字符”错误。

我也试过这个:

regexp: r"/var/log LOG\+ANF\+ARF"

我做错了什么?

最佳答案

不要转义替换 字符串。它不是正则表达式。它只是一个将替换正则表达式的字符串。加号在replace中没有特殊意义,例如

    - replace:
path: aide.conf
regexp: "/var/log LOG\\+ANF\\+ARF"
replace: "/var/log/ LOG+ANF+ARF"
backup: yes

给出(查看选项 --check --diff)

TASK [replace] *************************************************************
--- before: aide.conf
+++ after: aide.conf
@@ -1 +1 @@
-/var/log LOG+ANF+ARF
+/var/log/ LOG+ANF+ARF

参见 7.3.1. Double-Quoted Style7.3.2. Single-Quoted Style .没有必要在单引号正则表达式中转义反斜杠,例如下面的任务给出了相同的结果

    - replace:
path: aide.conf
regexp: '/var/log LOG\+ANF\+ARF'
replace: "/var/log/ LOG+ANF+ARF"
backup: yes

关于ansible - 如何在ansible替换模块中转义+字符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/68313643/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com