dpkg-query -l 'libc6*'
The first three columns of the output show the desired action, the package status, and errors, in that order.
Desired action:
u = Unknown i = Install h = Hold r = Remove p = Purge
Package status:
n = Not-installed c = Config-files H = Half-installed U = Unpacked F = Half-configured W = Triggers-awaiting t = Triggers-pending i = Installed
Error flags:
<empty> = (none) R = Reinst-required
An uppercase status or error letter indicates the package is likely to cause severe problems. Please refer to dpkg(1) for information about the above states and flags.
The output format of this option is not configurable, but varies automatically to fit the terminal width. It is intended for human readers, and is not easily machine-readable. See -W (--show) and --showformat for a way to configure the output format.
In the format string, "\" introduces escapes:
\n newline \r carriage return \t tab
"\" before any other character suppresses any special meaning of the following character, which is useful for "\" and "$".
Package information can be included by inserting variable references to package fields using the syntax "${field[;width]}". Fields are printed right-aligned unless the width is negative in which case left alignment will be used. The following fields are recognised but they are not necessarily available in the status file (only internal fields or fields stored in the binary package end up in it):
Architecture Bugs Conffiles (internal) Config-Version (internal) Conflicts Breaks Depends Description Enhances Essential Filename (internal, dselect related) Homepage Installed-Size MD5sum (internal, dselect related) MSDOS-Filename (internal, dselect related) Maintainer Origin Package Pre-Depends Priority Provides Recommends Replaces Revision (obsolete) Section Size (internal, dselect related) Source Status (internal) Suggests Tag (usually not in the .deb but in APT's Packages files) Triggers-Awaited (internal) Triggers-Pending (internal) Version
The default format string is "${Package}\t${Version}\n". Actually, all other fields found in the status file (i.e. user defined fields) can be requested, too. They will be printed as-is, though, no conversion nor error checking is done on them. To get the name of the dpkg maintainer and the installed version, you could run:
dpkg-query -W -f='${Package} ${Version}\t${Maintainer}\n' dpkg
This is free software; see the GNU General Public Licence version 2 or later for copying conditions. There is NO WARRANTY.