
간단한 설명과 함께 설치된 패키지를 사용자별로 나열하려면 어떻게 해야 합니까?
설치할 패키지를 검색하면 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
그러면 각 줄에서 팩맨 검색을 수행하지 않고 만든 루프와 동일한 출력이 생성됩니다. 파이프와 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]+"