Ansible 查找包含日期和时间戳的文件模式

Ansible 查找包含日期和时间戳的文件模式,ansible,Ansible,在查找包含日期和时间戳的文件时,是否有一种模式可供使用。我的文件的格式是file\u name.file\u extension.processID.yyy-MM-DD@HH:MM:SS~ 我的变量 findFile - "home/usr/file1" - "home/usr/file2" - "home/usr/file3/file4" - "home/usr/file5" 我的剧本角色 - n

在查找包含日期和时间戳的文件时,是否有一种模式可供使用。我的文件的格式是
file\u name.file\u extension.processID.yyy-MM-DD@HH:MM:SS~

我的变量

findFile
  - "home/usr/file1"
  - "home/usr/file2"
  - "home/usr/file3/file4"
  - "home/usr/file5"
我的剧本角色

- name: Find files
  find:
    paths: "{{ item }}"
    patterns:
      - '*.*.*.*.*@*~'
    age: 30d
    recurse: yes
  register: fileList
  loop: "{{ findFile }}"
  
- name: Delete files
  file:
    path: "{{ item.path }}"
    state: absent
  loop: "{{ fileList.files }}"
这是示例文件和目录

home
   |-------usr
             |-------file1
                         |-------configFile.xml
             |-------file2
                         |-------propertiesFile.txt.2012.2020-07-13@23:08:10~
             |-------file3
                         |-------file4
                                     |-------content.yml.2012.2020-04-04@23:08:10~                       
             |-------file5
                         |-------configFile.xml.2012.2020-03-05@13:08:10~
你可以用

*\.\d+\.\d{4}-\d{2}-\d{2}@\d{2}:\d{2}:\d{2}~$
要测试它,请执行以下操作:

  • *
    匹配文件和文件扩展名。如果要强制执行
    文件.ext
    ,也可以执行
    *\..*
    ,该解决方案还可以在其中查找不带扩展名的文件
  • \。
    匹配单个点
  • \d+
    为进程ID匹配1到n个数字
  • \。
    匹配单个点
  • \d{4}-\d{2}-\d{2}
    匹配日期部分:正好4位数字,年份,然后是破折号,然后正好2位数字,月份,然后是破折号,然后正好2位数字,日期
  • @
    单个at标志
  • \d{2}:\d{2}:\d{2}
    匹配时间部分:正好两位数字,小时,然后一个冒号,然后正好两位数字,分钟,然后一个冒号,然后正好两位数字,秒
  • ~$
    应为字符串最后一个字符的波浪号,如美元符号(
    $
    )所示