
¿Cómo enumero los paquetes instalados (por usuario) con una breve descripción?
Cuando busco paquetes para instalar:, pacman -Ss zsh
obtengo el siguiente resultado:
extra/zsh 5.7.1-1 [installed] A very advanced and programmable command interpreter (shell) for UNIX
Me gustaría obtener el mismo resultado usando algo como pacman -Qe
.
Respuesta1
Estos funcionan rápido por mi parte.
Esto proporcionará información completa de los resultados de pacman -Qe. Hace pacman -Qi en cada línea de la salida pacman -Qe
for line in "$(pacman -Qqe)"; do pacman -Qi $(echo "$line"); done
Esto generará el mismo resultado que el bucle que hiciste pero sin hacer una búsqueda de pacman en cada línea. Utiliza pipes y perl para formatear la salida del comando anterior
for line in "$(pacman -Qqe)"; do pacman -Qi $(echo "$line") ; done | perl -pe 's/ +/ /gm' | perl -pe 's/^(Groups +: )(.*)/$1($2)/gm' | perl -0777 -pe 's/^Name : (.*)\nVersion :(.*)\nDescription : ((?!None).*)?(?:.|\n)*?Groups :((?! \(None\)$)( )?.*)?(?:.|\n(?!Name))+/local\/$1$2$4\n $3/gm' | grep -A1 --color -P "^[^\s]+"
Igual que el anterior pero no agregó "local/" al comienzo de cada nombre de paquete
for line in "$(pacman -Qqe)"; do pacman -Qi $(echo "$line") ; done | perl -pe 's/ +/ /gm' | perl -pe 's/^(Groups +: )(.*)/$1($2)/gm' | perl -0777 -pe 's/^Name : (.*)\nVersion :(.*)\nDescription : ((?!None).*)?(?:.|\n)*?Groups :((?! \(None\)$)( )?.*)?(?:.|\n(?!Name))+/$1$2$4\n $3/gm' | grep -A1 --color -P "^[^\s]+"
Respuesta2
Este comando da la descripción en la misma línea.
expac -H M '%-20n\t%10d' $(pacman -Qe)
Está hecho a partir de algunos comandos encontrados.aquíen la archwiki.