Se você eliminar o padrão de nome do pacote, dpkg-query listará apenas os pacotes instalados ou configurados:
dpkg-query -f '${Package}###${Version}\n' -W
Isso dá o mesmo resultado que sua putativa grep .
Estou tentando listar os pacotes instalados com o formato personalizado
dpkg-query -f '${Package}###${Version}\n' -W '*'
Mas também imprime os que foram removidos.
Existe alguma maneira de filtrá-los? Estou tentando evitar fazer um grep -v '###$'
Você pode usar a opção --showformat para listar o pacote instalado + versão:
dpkg-query --showformat='${Package}\t${Version}\n' --show