Извлеките определенный столбец из вывода командной строки Windows, используя Ansible - PullRequest
0 голосов
/ 30 апреля 2019

Я хотел получить выходные данные в 3-м и 5-м столбцах. Я использовал приведенную ниже команду в моей пьесе.

win_shell: dir | awk '{print $3,$5}'

Но я получаю вывод, как показано ниже.

        "awk : The term 'awk' is not recognized as the name of a cmdlet, function, script file, or operable program. Check the ",
        "spelling of the name, or if a path was included, verify that the path is correct and try again.",]

Когда я выполняю команду через приглашение Windows, я получаю ожидаемый результат. Пожалуйста, помогите.

1 Ответ

0 голосов
/ 30 апреля 2019

Вы можете выполнить извлечение столбцов в Ansible вместо использования awk. Например, если вы зарегистрировали выходные данные своей задачи win_shell в переменной с именем result, вы можете сделать это:

- debug:
    var: item.split()|json_query('[[2], [4]]')
  loop: "{{ output.stdout_lines }}"

Это будет отображать 3-й и 5-й столбец (массивы с нулевым индексом) из каждой строки вывода. Может быть, вы хотите поместить это в список, а не просто отображать:

- set_fact:
    data: "{{ data|default([]) + [item.split()|json_query('[[2], [4]]')] }}"
  loop: "{{ output.stdout_lines }}"
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...