使用ansible和regex_replace过滤器提取字符串的最后一个字符

时间:2016-06-10 12:21:14

标签: regex ansible ansible-ad-hoc

在剧本中,我尝试提取变量“ansible_hostname”的最后一个字符。

我尝试使用regex_replace过滤器来做到这一点,但没有任何作用。

我用这个ad-hoc命令简化了我的脚本:

  

ansible localhost -m debug -a“msg = {{'devserver01'|   regex_replace('[0-9] {1} $','\ 1')}}“

我想提取最后一个字符:'1'。

我正在使用Ansible 2.0。

2 个答案:

答案 0 :(得分:9)

Python可以节省时间,并且在此用途中可以接受。

只需在字符串或变量的末尾添加[-1],即获取字符串中的最后一个字符。

ansible localhost -m debug -a "msg={{ 'devserver01'[-1] }}"

答案 1 :(得分:-1)

以下内容适合您。

ansible localhost -m debug -a "msg= {{ 'devserver01' | regex_replace('^(.+)([0-9]{1})$','\\1') }}"

说明:

^(.+) : it will take one or more group of characters from start
([0-9]{1})$ : removes one digit from end of string

\\1 : is a back reference to the first group