시스템 매뉴얼 페이지가 가장 많은 설치된 패키지의 이름을 출력하고 싶습니다. 이를 수행하는 명령이 있습니까?
답변1
Debian 기반 시스템의 경우 가장 많은 패키지를 얻으세요.설치됨매뉴얼 페이지:
dpkg -S '/usr/share/man/*.gz' | cut -d: -f1 | sort | uniq -c | sort -rn | head -1 | awk '{print $2}'
가장 사용 가능한 매뉴얼 페이지가 포함된 패키지를 얻으려면(설치 여부에 관계없이):
apt-file search /usr/share/man | cut -d: -f1 | uniq -c | sort -rn | head -1 | awk '{print $2}'
내 시스템에서 사용 가능한 매뉴얼 페이지가 가장 많은 패키지는 입니다 linux-manual-3.2
.
설명하다
pkg
한 번에 한 단계씩 생성하는 파이프라인을 살펴보겠습니다.
apt-file search /usr/share/man
그러면 계층 구조에 있는 모든 파일의 패키지와 파일 이름이 반환됩니다
/usr/share/man
.cut -d: -f1
그러면 목록의 파일 이름이 제거되어 패키지 목록만 남게 됩니다.
uniq -c
이는 각 패키지의 매뉴얼 페이지 수를 계산합니다. (일반적으로 사용하기 전에 정렬이 필요
uniq -c
하지만apt-find
한 번에 한 패키지씩 출력을 생성하면 이 단계가 필요하지 않습니다.)sort -rn
이는 맨 페이지가 가장 많은 패키지가 맨 위에 있고 맨 페이지가 가장 적은 패키지가 맨 아래에 오도록 내림차순으로 정렬됩니다.
head -1
맨 페이지가 가장 많은 첫 번째 줄이 선택됩니다.
awk '{print $2}'
그러면 해당 행에서 패키지 이름이 선택됩니다.
이 파이프라인의 일부만 사용하는 것이 흥미로웠습니다.
apt-file search /usr/share/man | cut -d: -f1 | uniq -c | sort -rn | less
less
그러면 매뉴얼 페이지 수에 따라 내림차순으로 정렬된 패키지 목록이 표시됩니다 . 내 시스템에서 상위 5개는 다음과 같습니다.
3453 linux-manual-3.2
3384 liblapack-doc-man
2350 freebsd-manpages
1916 manpages-ja-dev
1905 manpages-fr-dev
답변2
내 젠투 박스 명령에서
qfile /usr/share/man/*/* | awk '{print $1}' | sort | uniq -c | sort -n
주어진
864 sys-libs/ncurses
1139 sys-apps/man-pages-posix
1283 dev-libs/openssl
2209 sys-apps/man-pages
2246 x11-libs/libxcb
하지만 이후도 포함모두약간의 **
패턴 도움말이 있는 하위 디렉토리
qfile /usr/share/man/**/* | awk '{print $1}' | sort | uniq -c | sort -n
매뉴얼 페이지가 승리합니다.
933 sys-libs/ncurses
1142 sys-apps/man-pages-posix
1352 dev-libs/openssl
2254 x11-libs/libxcb
2310 sys-apps/man-pages
답변3
데비안/우분투/민트의 대안...
$ cd /var/lib/dpkg/info &&
grep -c '^/usr/share/man/.*/' *.list | sort -t: -k2rn | less -XF
나에게주세요:
manpages-dev.list:1962
libssl-doc.list:1171
tcl8.6-doc.list:813
perl-doc.list:719
libdatetime-locale-perl.list:470
tcllib.list:407
답변4
이 솔루션은 작동합니다중앙 운영 체제그리고RHEL기계.
rpm -qf $(man -w $(compgen -ac)) | sort | uniq -c | sort -nr | head -1
시스템에서 사용할 수 있는 모든 명령 목록을 생성하는 데 사용할 수 있습니다 compgen -ac
. 이제 man -w
이 명령에 대한 매뉴얼 페이지를 알 수 있습니다.
이 매뉴얼 페이지를 입력으로 사용하면 해당 매뉴얼 페이지 rpm -qf
가 포함된 패키지가 제공됩니다. 이제 출력을 정렬하고 총 발생 횟수를 찾은 다음 패키지 이름과 해당 패키지에 해당하는 매뉴얼 페이지 수를 제공하는 첫 번째 행을 가져옵니다. 위의 명령을 실행한 후 내가 얻는 결과는 다음과 같습니다.
329 netpbm-progs-10.47.05-11.el6.x86_64
따라서 위 출력에는 패키지에서 제공하는 명령에 대한 매뉴얼 페이지 항목이 329개 있는데, netpbm-progs-10.47.05-11.el6.x86_64
이는 내 시스템에서 가장 높은 수치입니다.
인용하다