我在yaml文件中有一个这样的字符串:
switchport private-vlan trunk allowed vlan: 100-115,1060,1802,1455,1433,1422
通过jinja2模板进行转换,如下所示:
interface GigabitEthernet100/0/0.100-115
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1060
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1802
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1455
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1433
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1422
description test02 slot1/1_1G
我在jinja2模板中使用了split(请参见下面的代码部分),因此我可以得到如下所述的结果。
在分割“,”之后,如何使它再次分割找到的数字范围?像这样:如果您看到100-115,请从100开始直到115,这样我就可以在for语句中使用它了。
{% if lines == "interface GigabitEthernet1/1" %}
{% for vlan in configIF[lines]['switchport private-vlan trunk allowed vlan'].split(",") %}
interface GigabitEthernet100/0/0.{{ vlan }}
description {{ configIF[lines]['description'] }}
{% endfor %}
{% endif %}
{{ lines }}
description {{ configIF[lines]['description'] }}
{% endfor %}
我的结果:
interface GigabitEthernet100/0/0.100-115
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1000
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1402
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1404
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1406
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1414
description test02 slot1/1_1G
预期结果:
interface GigabitEthernet100/0/0.100
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.101
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.102
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.103 ... and so on until 115
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1000
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1402
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1404
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1406
description test02 slot1/1_1G
interface GigabitEthernet100/0/0.1414
description test02 slot1/1_1G