バックトレースを使用しており、ハードドライブにいくつかのパッケージを含む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は単一のファイル内で検索できます。