Para sistemas baseados em Debian, para obter o pacote com as páginas man mais instaladas :
dpkg -S '/usr/share/man/*.gz' | cut -d: -f1 | sort | uniq -c | sort -rn | head -1 | awk '{print $2}'
Para obter o pacote com as páginas man mais disponíveis (instaladas ou não):
apt-file search /usr/share/man | cut -d: -f1 | uniq -c | sort -rn | head -1 | awk '{print $2}'
No meu sistema, o pacote com as páginas de manual mais disponíveis é linux-manual-3.2
.
Explicação
Tomando o pipeline usado para criar pkg
um passo de cada vez:
-
apt-file search /usr/share/man
Isso retorna os nomes de pacotes e arquivos para todos os arquivos na hierarquia /usr/share/man
.
-
cut -d: -f1
Isso remove os nomes de arquivos da lista para que possamos ter apenas uma lista de pacotes.
-
uniq -c
Isso conta o número de páginas man em cada pacote. (Muitas vezes, é preciso classificar antes de usar uniq -c
, mas apt-find
produz um pacote de saída de cada vez, tornando essa etapa desnecessária.)
-
sort -rn
Isso faz uma classificação numérica em ordem decrescente para que o pacote com a maioria das páginas man esteja no topo e as que tenham menos estejam na parte inferior.
-
head -1
Isto escolhe a primeira linha que é aquela com mais páginas man.
-
awk '{print $2}'
Isto seleciona o nome do pacote daquela linha.
Achei interessante usar apenas uma parte desse pipeline:
apt-file search /usr/share/man | cut -d: -f1 | uniq -c | sort -rn | less
Isso exibe, via less
, a lista de pacotes classificados em ordem decrescente pelo número de páginas man. No meu sistema, os cinco primeiros são:
3453 linux-manual-3.2
3384 liblapack-doc-man
2350 freebsd-manpages
1916 manpages-ja-dev
1905 manpages-fr-dev