Ansible如何获取数字的最后两位

5

我有一个问题,如何将数字转换为字符串并使用过滤器获取最后两个数字。

对于字符串,可以轻松地进行操作:

vars:
  string_1: 'abcd'
  number_1: 1234

对于字符串,很容易:

"{{ string_1[-2:] }}"

但是对于数字,我需要先将其转换为字符串,但在模板化过程中失败了。

"{{ number_1 | string | [-2:] }}

如何用一行代码实现这个?

2个回答

3

把括号中的内容转化为闭合形式。与过滤器相比,索引具有较高的优先级。(当然,索引不能用作过滤器。)

msg: "{{ (number_1|string)[-2:] }}"

唯一的区别是取模运算符 % 返回一个整数。这些任务
    - debug:
        msg: "{{ (number_1 % 100)|type_debug }}"
    - debug:
        msg: "{{ (number_1|string)[-2:]|type_debug }}"

提供

    "msg": "int"
    "msg": "str"

1
您可以在这里使用模数技巧:
{{ number_1 % 100 }}

模数除以100应该得到任何输入数字的最后两位。

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接