Ansible 在反斜杠上拆分字符串

Ansible 在反斜杠上拆分字符串

我将目录/子目录列表传递到剧本中,如下所示:

dirs=['Web\this','Web\that','Web']

当我实际在这些目录上执行任务(win_shell,调用构建过程)时,这种方法很有效,但稍后我需要复制文件,而“\”在用作文件名的一部分时不起作用。我有兴趣使用以下内容,因此我将获取大多数构建的模块名称和根文件夹中的“Web”:

dirs[1].split('\\')[-1]

我希望这将分别返回“this”、“that”和“Web”。

但是我找不到任何斜线或正则表达式组合来分割字符串。我在 StackExchange 中找到了大约 5 个接近的问题/答案,但似乎都没有做到这一点。

我也尝试过不同的方法

"{{ dirs[1] | regex_replace('\\','-') }}"

答案1

使用分隔符声明变量以避免引用和转义的麻烦。使用单引号样式; 反斜杠'\'可以自由使用。例如,下面的任务

  - debug:
      msg: "{{ dirs[1].split(separator)[-1] }}"
    vars:
      separator: '\'
      dirs: ['Web\this','Web\that','Web']

给出

  msg: that

相关内容