如何列出所有 aptitude 用户标签或包的用户标签?

如何列出所有 aptitude 用户标签或包的用户标签?

跟随我的自己的律师user-tags在处理项目时开始使用,但现在我不记得如何调用其中一些标签,这取消了它们的用处。有办法找回这些名字吗?

答案1

如果您安装了软件包aptitude并附加了该--add-user-tag <tag>选项,您可以通过运行以下命令列出软件包的用户标签:

aptitude show <package_name>

输出的最后一行应显示用户标签。

您可以使用以下命令在所有已安装的软件包中搜索

aptitude show '~i' | grep "User Tags"

答案2

使用以下命令,您不需要管道或 grep:

aptitude search '?user-tag()' -F '%p %T'

这会查找所有具有用户标签的包,并使用-Fto设置%p %T包名称和用户标签的输出格式。

您可以向搜索查询添加任何内容以进一步限制结果,例如仅列出带有用户标签的已安装软件包:

aptitude search '~i?user-tag()' -F '%p %T'

答案3

以下命令行将返回一个用户标签每行:

aptitude show '~T' | sed -n '/^User Tags: /{s/^User Tags: //;s/, /\n/g;p}' | sort -u

这会将包数据库 ( ) 中所有包的信息通过管道传递~T给 sed,这将:

  • -n不打印模式空间(该行)在每个命令循环后自动执行;与和一起,/User Tags/p基本上模仿 grep
  • /^User Tags: /{}仅在与此匹配的行上执行命令组 ( )正则表达式
  • s/^User Tags: //将行开头的“用户标签:”替换为空字符串
  • s/, /\n/替换逗号+空格分隔多个用户标签带有换行符
  • p打印结果模式空间

sed 的输出(用户标签对于每个包,每行一个)然后通过管道传输以sort -u消除同一标签的多次提及。

相关内容