
Como listo os pacotes instalados (por usuário) com uma breve descrição?
Quando procuro pacotes para instalar: pacman -Ss zsh
, obtenho o seguinte resultado:
extra/zsh 5.7.1-1 [installed] A very advanced and programmable command interpreter (shell) for UNIX
gostaria de obter o mesmo resultado usando algo como pacman -Qe
.
Responder1
Eles funcionam rápido do meu lado
Isso fornecerá informações completas dos resultados do pacman -Qe. Faz pacman -Qi em cada linha da saída pacman -Qe
for line in "$(pacman -Qqe)"; do pacman -Qi $(echo "$line"); done
Isso gerará a mesma saída do loop que você criou, mas sem fazer uma pesquisa pelo pacman em cada linha. Usa pipes e perl para formatar a saída do comando acima
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]+"
O mesmo que acima, mas não adicionou "local/" ao início de cada nome de pacote
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]+"
Responder2
Este comando fornece a descrição na mesma linha.
expac -H M '%-20n\t%10d' $(pacman -Qe)
É feito a partir de alguns comandos encontradosaquino arquiwiki.