Я пытаюсь проанализировать вывод команды, которая вернула строку, подобную этой (есть больше выходных данных, но это строка, которую я ищу):
Оставшееся время: 3 Минуты и 12 секунд
И когда времени не осталось, возвращается строка, подобная этой:
Оставшееся время: 0 секунд
Я хотел бы извлечь количество минут и секунд, чтобы я мог передать его в GNU date -d. Сначала я попробовал это:
- name: determine how much time we have left
set_fact:
time_left: "{{ cmd_output.stdout | regex_search(time_left_regex, '\\1', '\\2') | join(' ') }}"
vars:
time_left_regex: 'Remaining Time: ([0-9]+ Minutes) and ([0-9]+ Seconds)'
Но это не относится к случаю, когда не осталось времени. Тогда я попробовал что-то вроде этого:
- name: determine how much time we have left
set_fact:
time_left: "{{ cmd_output.stdout | regex_findall(time_left_regex, '\\1') }}"
vars:
time_left_regex: 'Next Execution:.*([0-9]{1,2} (Minutes|Seconds))'
Но это только возвращает что-то вроде:
ok: [localhost] => {"msg": "осталось времени: [ [u'2 Seconds ', u'Seconds']] "}
Я думаю, что я на правильном пути, но мне нужно лучшее регулярное выражение, так что, может быть, кто-нибудь может помочь мне здесь? Заранее большое спасибо.