apt-cacheは指定されたソースのみを検索します。

apt-cacheは指定されたソースのみを検索します。

バックトレースを使用しており、ハードドライブにいくつかのパッケージを含むPackages.gzファイルがあります。 Packages.gzを含むフォルダのみを検索するには、「apt-cache検索」を使用したいと思います。可能ですか?

答え1

あなたが探しているgrep dctrlこれはdctrlのツールパック。

たとえば、

$ grep-dctrl -ns Package -F Filename mplayer2_2.0~git20120817-dmo1_amd64.deb www.deb-multimedia.org_dists_wheezy_main_binary-amd64_Packages 
mplayer2

-nラベル以外のフィールドの値のみが印刷されることを意味します。-s Packageパッケージフィールドのみが印刷されることを示します。-F Filenameファイル名フィールドのみが検索されることを示します。mplayer2…deb検索することです。www…_Packages検索するファイルです。

.gzファイルを直接検索するかどうかはわかりませんが、stdinを検索してパイプを使用できます。zcat Packages.gz | grep-dctrl …

編集する:.debファイル名だけでなく、実際のファイル名がある場合は、次を使用することもできます。dpkg-deb情報取得中です。以下はWiresharkの使用例です。

$ dpkg-deb --showformat='${package}\n' -W a.deb
wireshark

説明すると、--showformat出力形式を指定できます(ここではデフォルトのパッケージとバージョンではなくパッケージ名のみを取得します)。-Wこれは、バイナリパッケージに関するフォーマットされた情報を印刷することを意味します。a.debもちろん、情報を印刷するのは.debパッケージです(ファイル名だけを吐き出すのではないことを示すために名前を変更しました)。

答え2

なぜapt-cacheを使うのですか? zgrepは単一のファイル内で検索できます。

関連情報