Bash APT-GET:如何检索名称中包含特定字符串的所有包的描述?

Bash APT-GET:如何检索名称中包含特定字符串的所有包的描述?,bash,Bash,我希望检查名称中包含字符串“Terminal”的所有包装。目前,我可以通过发出以下命令来执行此操作: apt-cache show someterminalpackage 然而,有许多这样的软件包,我希望一次性查看所有这些软件包的描述。到目前为止,我已经尝试使用xargs,但我不知道如何提取包的名称,然后对其发出上述命令 你知道怎么做吗 谢谢 单个apt get show的输出形式如下: package-name - abbreivate package info 例如: mg - mic

我希望检查名称中包含字符串“Terminal”的所有包装。目前,我可以通过发出以下命令来执行此操作:

apt-cache show someterminalpackage
然而,有许多这样的软件包,我希望一次性查看所有这些软件包的描述。到目前为止,我已经尝试使用xargs,但我不知道如何提取包的名称,然后对其发出上述命令

你知道怎么做吗

谢谢

单个
apt get show
的输出形式如下:

package-name -  abbreivate package info
例如:

mg - microscopic GNU Emacs-style editor
更新


这不是严格的要求,但我正试图在iPhone上运行这些命令。听到有越狱iphone(6.x)的人的声音会非常棒。

这样使用apt缓存:

apt-cache search <your string>
apt缓存搜索

组合
apt缓存搜索
apt缓存显示

apt-cache show $(apt-cache search <packagename>)
试试下面的命令

apt-cache search all | awk -F' - ' '{ print $1}' | grep terminal | xargs -I {} apt-cache show {}

有点粗糙,准备好了,但这应该可以:

apt-cache search terminal | cut -d "-" -f 1 | grep terminal | xargs -I % bash -c 'echo %; apt-cache show %; echo -e "\n"' > terminals.txt
让我把这个命令分解一下:

apt cache search terminal
:搜索名称或描述中包含字符串“terminal”的所有包

| cut-d“-”f 1
:提取包名(假设它们在包名中没有连字符)

| grep terminal
:再次执行grep以在提取的包名称中搜索“terminal”

最后

| xargs-I%bash-c'echo%;apt缓存显示%;echo-e“\n”>terminals.txt
:对每个包名运行apt cache show命令

这更接近你想要的吗


仅供参考,在装有6.1.3的JB'ed iPhone上测试:)

如果您真的只想搜索软件包名称,那么您需要
apt缓存pkgnames

apt-cache pkgnames \
| grep -i terminal \
| xargs apt-cache show

它不是apt get show,而是apt cache show。是否要在名称中包含terminal的所有已安装软件包上运行上述命令?是的,我要在所有此类软件包(不仅仅是已安装的软件包)上运行此命令。op希望软件包名称中包含“terminal”字符串。谢谢。这是一个很好的方法,但是,这显示了每个包的缩写信息,我需要每个包的
apt cache show
显示的详细信息这与我希望的更接近,但我没有看到我希望看到的所有包的详细信息。太好了!!!这正是我想要的。我可以看到有一个带有连字符名称的包被破坏了,但我可以接受。非常感谢。不,
apt-cache-search-terminal
提供了与终端相关的所有包的列表。很好,这也很有效!!不过,我似乎在最后遇到了一个错误:W:
无法找到包{}
,您知道为什么会这样吗?
apt-cache pkgnames \
| grep -i terminal \
| xargs apt-cache show