Страницы

Поиск по вопросам

пятница, 24 января 2020 г.

Аналог grep -v для ansible

#python #регулярные_выражения #администрирование #ansible #jinja2


Нужно получить всех когда-либо входивших пользователей на винде. В списке не должно
быть папки Public.

Такая конструкция не работает:

- name: TEST find 4 win
  block:
    - win_find:
        paths: C:\Users\
        file_type: directory
        excludes: Public
      register: win_find_out
    - debug:
        msg: "{{ win_find_out.files }}"


Есть ещё параметр patterns, но !Public, ?!Public или not (Public) не работают - выхлоп
вообще пропадает.

ansible 2.7.5
    


Ответы

Ответ 1



Вы можете использовать такое регулярное выражение: ^(?!.*Public) См. демо регулярного выражения онлайн. Подробности ^ - начало строки (?!.*Public) - исключающий блок предварительного просмотра вперёд, который не вернёт совпадения, если сразу после текущей позиции имеется .* - 0 и более символов, отличных от символа перевода на новую строку Public - строка Public Если в строке могут быть символы переноса строки, добавьте (?s) в начало: (?s)^(?!.*Public)

Комментариев нет:

Отправить комментарий