
如何列出已安裝的軟體包(按使用者)並附有簡短說明?
當我搜尋要安裝的套件時:pacman -Ss zsh
,我得到以下結果:
extra/zsh 5.7.1-1 [installed] A very advanced and programmable command interpreter (shell) for UNIX
我想使用類似 的東西得到相同的結果pacman -Qe
。
答案1
這些對我來說效果很快
這將提供 pacman -Qe 結果的完整資訊。它在 pacman -Qe 輸出的每一行執行 pacman -Qi
for line in "$(pacman -Qqe)"; do pacman -Qi $(echo "$line"); done
這將產生與您所做的循環相同的輸出,但無需在每行上進行 pacman 搜尋。使用管道和 perl 格式化上述命令的輸出
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]+"
與上面相同,但沒有在每個包名稱的開頭添加“local/”
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]+"