
インストールされたパッケージを(ユーザー別に)簡単な説明付きで一覧表示するにはどうすればいいですか?
インストールするパッケージを検索すると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]+"