システムのマニュアルページが最も多くインストールされているパッケージの名前を出力したいと思います。これを行うコマンドはありますか?
ベストアンサー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
一度に1つずつ作成するパイプラインを見てみましょう。
apt-file search /usr/share/man
これにより、階層内のすべてのファイルのパッケージとファイル名が返されます
/usr/share/man
。cut -d: -f1
これにより、リストのファイル名が削除され、パッケージのリストのみが残ります。
uniq -c
これにより、各パッケージのマニュアルページ数が計算されます。 (通常使用する前にソートが必要
uniq -c
ですが、apt-find
一度に1パッケージずつ出力を生成する場合は、この手順は不要です。)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