Ansible:命令行选项 'd' [from -d,] 无法与其他选项结合使用

Ansible: Command line option 'd' [from -d,] is not understood in combination with the other options

更新: 虽然这个问题被标记为拼写错误(因此“对用户不太有用”),但问题实际上是需要使用正确的 ansible 模块; shell,而不是 command 模块。

我希望有人能告诉我哪里出了问题,我猜这与语法或转义或字符有关(尽管我已经尝试将 awk(及其卷曲)替换为切,但运气不好)在导致以下错误的命令行中:

"stderr": "\u001b[1;31mE: \u001b[0mCommand line option 'F' [from -F,] is not understood in combination with the other options.\u001b[0m"

基本上在我创建的角色中,我想动态存储一个列表,其中包含碰巧安装的 gnome 或 x11 软件包,然后使用 apt 删除它们;

- name: Generate variable containing all gnome GUI packages
  command: apt list | awk -F, '/gnome/ && /installed/ {print }'
  register: gui_packages
  ignore_errors: yes
  changed_when: false

- name: Remove entire GUI
  apt:
    name:
      - "{{ gui_packages_to_remove_specific }}"
      - "{{ gui_packages }}"
    state: absent
    force: yes
  when:
    - remove_gui_packages is defined
    - remove_gui_packages is true

在此先感谢您提供的任何帮助!!

来自 command 模块的 the documentation

The command(s) will not be processed through the shell, so variables like $HOSTNAME and operations like "*", "<", ">", "|", ";" and "&" will not work. Use the ansible.builtin.shell module if you need these features.

你的语法问题是你没有 运行 apt 传送到 awk。你是 运行 apt 并给出所有 list | awk -F, '/gnome/ && /installed/ {print }' 作为参数。