使用Ansible模块重命名多个文件

时间:2019-07-26 16:11:54

标签: ansible

我有30个文件,需要通过从每个文件的名称中删除版本数字来重命名。我尝试了各种统计信息,文件,正则表达式过滤器。

例如:

rename aa-fileone-war-4.0.60.war to aa-fileone-war.war
rename aa-filetwo-war-4.0.62.war to aa-filetwo-war.war
rename aa-filethree-war-5.0.60.war to aa-filethree-war.war
(30 files)

1 个答案:

答案 0 :(得分:0)

获取文件列表。遍历它们并重命名。

假设文件已经部署到主机(不在控制器上):

- name: Get a list of files
  shell: "ls {{ path_to_files }}/*.war"
  changed_when: false
  register: results

- name: Rename the files
  shell: "mv {{ path_to_files }}/{{ item }} {{ path_to_files }}/{{ item | regex_replace('-?((\d+)\.war)+', '\.war') }}"
  with_items: results.stdout_lines