2017-11-10 13 views
0

내가 변수의 주요 버전 번호를 캡처하기 위해 노력하고있어, 나는 주 버전 번호 다음 번호를 제거하기 위해 노력하고있어이 할 :Ansible regex_replace

variable.yml에서 :

version: 3.9.5 
main_version: "{{ version | regex_replace('^.*(..)$', '')}}" 

이것은 나를 3.9로 보내야하지만, 디버그는 아무 것도주지 못합니다.

올바른 방법은 무엇입니까?

(그리고 그 3.10.1-rcblah으로도 같은 일을 3.10main_version을 반환하고 것, 그래서 여전히, 3.10.1 등의 일을 처리 할 수있을 것이며, 그 3.10main_version을 반환 것을 확인)

답변

1

'^.*(\.[0-9]*)$' 

그러나이 왜 version_compare를 사용하지 않는 : 당신의 정규 표현식 같은 것을해야 추측? http://docs.ansible.com/ansible/latest/playbooks_tests.html#version-comparison

+0

감사합니다. yml을 받기 위해 두 번 이스케이프 처리해야했습니다. 그래서 내 전체 명령은'main_version : "{{version | regex_replace ('^ (. *) (\\. [0-9] *) $', '\\ 1')}}"'입니다. – Rekovni

+0

version_compare를 살펴 보았지만 이것이 내 시나리오에서 어떻게 작동 하는지를 볼 수 없었습니다. – Rekovni