A veces tiene que trabajar hacia atrás ... primero encuentre todas las dependencias no opcionales, luego haga una referencia cruzada con la lista completa, luego use uniq. Esto generará una lista de dependencias opcionales instaladas.
Encuentra todo instalado
pacman -Q
Encuentra todos los no opcionales:
pacman -Qent
Por lo tanto, las entradas únicas deben ser opcionales:
(pacman -Q; pacman -Qent) | sort | uniq -u
Generar una lista de opciones opcionales que faltan depende de las descripciones, no es bonito, pero funciona.
pacman -Q > /tmp/paccache; for pkg in $(awk '{print $1}' /tmp/paccache); do pacman -Qi $pkg | grep "^Optional Deps" | grep -v None >/dev/null && echo $pkg >> /tmp/hasdeps; done
for pkg in $(awk '{print $1}' /tmp/hasdeps); do echo -ne "Package: $pkg ___ "; (pacman -Qi $pkg | sed -n '/^Optional/,$p' | sed '/^Required/q' | head -n -1) | grep -v installed; echo ___; done | grep -v "___ ___" | sed -e 's/Optional Deps/ /' -e 's/___//' | sed -e 's/ \+/ /g'