On Sun, 14 Jan 2018, Vasyl Vavrychuk wrote:
Hi, John, On Sun, Jan 14, 2018 at 8:48 AM, john doe <johndoe65534@mail.com> wrote:On 1/14/2018 7:28 AM, john doe wrote: $ dpkg-query -W -f='${db:Status-Abbrev}${binary:Package}\n' awk git gawk cmake 2>&1 | awk '!/^ii/ || !/^un/{print $6}' git gawk cmakeI also tried to parse stderr, but then I realized that relying on the output dpkg-query: no packages found matching is not correct since it might be localized and is not suitable for scripting.
You could just discard the stderr, and take the complement of the hits from dpkg-query, relative to the supplied arguments: show-installed () { dpkg-query -W -f='${db:Status-Abbrev}${binary:Package}\n' "$@" | awk '/^ii/ {print $2}' } show-absent () { universe=("$@") diff <( IFS=$'\n' ; sort <<<"${universe[*]}" ) \ <( show-installed "${universe[@]}" 2>/dev/null ) | sed -n 's/^< //p' } $ dpkg-query -l not-a-real-package exim4 mksh xorg bash xterm chromium Desired=Unknown/Install/Remove/Purge/Hold | Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend |/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad) ||/ Name Version Architecture Description +++-======================-================-================-================================================= ii bash 4.4-5 amd64 GNU Bourne Again SHell un exim4 <none> <none> (no description available) ii mksh 54-2+b4 amd64 MirBSD Korn Shell ii xorg 1:7.7+19 amd64 X.Org X Window System ii xterm 327-2 amd64 X terminal emulator dpkg-query: no packages found matching not-a-real-package dpkg-query: no packages found matching chromium $ show-installed !* show-installed not-a-real-package exim4 mksh xorg bash xterm chromium dpkg-query: no packages found matching not-a-real-package dpkg-query: no packages found matching chromium bash mksh xorg xterm $ show-absent !* show-absent not-a-real-package exim4 mksh xorg bash xterm chromium chromium exim4 not-a-real-package (It is above my pay grade to tell whether "sort" needs its flags tweaked to sort identically to dpkg on arbitary package names.)