我使用 backtrack,并且我的硬盘上有一个包含一些软件包的 Packages.gz 文件。我想使用“apt-cache search”仅搜索包含 Packages.gz 的文件夹。这可能吗?
答案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
表示仅打印 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 可以在单个文件中进行搜索...