我想获得第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提示符执行命令时,我得到了预期的输出。请帮忙。
您可以在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 }}"