在ansible查找模块中使用换行符

时间:2018-11-06 21:35:51

标签: regex ansible ansible-2.x

试图添加有效的python regex作为find模块中patterns选项的参数,但不起作用。

printArray

问题似乎出在“ \ n”上,我尝试了多个反斜杠,单引号和方括号,但还无法使其正常运行。

我正在运行ansible 2.3.2.0。

2 个答案:

答案 0 :(得分:1)

尝试(未测试)

patterns: "^auto(_|\\.)([a-zA-Z]+{{'\n'}})"

答案 1 :(得分:0)

解决了这个问题。该模式旨在匹配以下文件名:

/etc/auto_(one or more letters, end of filename) 
/etc/auto.(one or more letters, end of filename)

以下文件名是与模式匹配的示例:

/etc/auto.master or /etc/auto_master

以下文件名是与模式不匹配的示例:

/etc/old.auto.master
/etc/old.auto_master
/etc/auto.master.20180101
/etc/auto_master.20180101

最终成功的ansible模式:

"^auto(_|\\.)([a-zA-Z]+)$"

这是在查找任务中成功使用模式的方式:

- name: Obtain a list of auto* files in /etc
  find:
    path: /etc
    patterns:
      - "^auto(_|\\.)([a-zA-Z]+)$"
      - "^fstab$"
      - "^vfstab$"
    use_regex: yes
  register: etc_auto_files

感谢那些发表评论并尝试回答这个问题的人。