如何使用ansible复制与正则表达式匹配的文件

时间:2020-07-31 03:33:58

标签: regex ansible

我在特定的new_char = String.fromCharCode(new_code); 文件夹中有一堆文件。某些文件具有不同的扩展名。我只想将以特定扩展名结尾的文件复制到目标目录。 我试过了,但是没用。

files/

在这种情况下,我只需要复制3个文件,因此我可以为每个文件创建一个新任务,但是我想知道如果要匹配正则表达式该怎么做

1 个答案:

答案 0 :(得分:3)

让我们将这些文件存储在控制器中

shell> tree files
files
├── file1.txt
├── file2.txt
└── file3.sh

可以使用find。将任务委托给本地主机。否则,任务将在远程主机上查找文件。例如

    - find:
        path: files
        file_type: file
        use_regex: false
        patterns:
          - '*.txt'
      register: result
      delegate_to: localhost
    - debug:
        msg: "{{ result.files|map(attribute='path')|list }}"

提供文件列表

  msg:
  - files/file2.txt
  - files/file1.txt

然后,使用列表并复制文件

    - copy:
        src: "{{ item }}"
        dest: var/files
      loop: "{{ result.files|map(attribute='path')|list }}"

文件存储在远程主机上

  • 查找任务中删除delegate_to: localhost,然后
  • copy 任务中设置remote_src: true(默认值:false)。