【发布时间】:2021-05-11 00:50:00
【问题描述】:
问题:
是否可以根据单词数组排除某些命令输出其输出?**
为什么?
在 Ubuntu/Debian 上,有两种方法可以列出所有可用的 pkg:
-
apt list(显示所有可用的 pkgs,以及已安装的 pkgs) -
apt-cache search .(显示所有可用的 pkgs,也安装了 pkgs)
不同之处在于,第一个命令,您可以使用grep -v 排除所有已安装的 pkg,问题与第一个不同,第二个命令您不能排除这些,因为“已安装”一词不存在。第一个命令的问题是它没有显示 pkg 描述,所以我想使用 apt-cache search . 但不包括所有已安装的 pkg。
# List all of my installed pkgs,
# Get just the pkg's name,
# Swap newlines for spaces,
# Save this list as an array for exclusion.
INSTALLED=("$(apt list --installed 2> /dev/null | awk -F/ '{print $1}' | tr '\r\n' ' ')")
然后我尝试了:
apt-cache search . | grep -v "${INSTALLED[@]}"
不幸的是,这不起作用,因为我仍然看到我安装的 pkg,所以我猜测它不包括数组中的第一个 pkg,而不是其余的。
再次提前感谢您!
【问题讨论】:
-
如果您edit 您的问题是显示minimal reproducible example 具有简洁、可测试的样本输入(即您提到的各种命令的输出,这些命令提供您想要比较的各种列表)和预期输出您想要编写的用于对该输入进行操作的工具,那么我们可以为您提供帮助。
-
现在好点了吗?抱歉,我是新手,不理解反对意见,但我现在将问题编辑为简短而甜蜜。
-
不,你列出了一些命令并说你想要一个工具来处理这些命令的输出。您需要提供这些命令的输出示例(您要编写的工具的输入)以及在给定该输入的情况下您要编写的该工具的最终输出。希望这是有道理的,如果没有看到How to Ask。
-
现在就像你说你想比较“fluffy”的输出和“bunny”的输出并寻求帮助 - 好的,向我们展示输出的样子以及你想用它做什么。给我们一个minimal reproducible example,提供具体的输入和输出,我们可以测试潜在的解决方案。