我如何从 yum check-updates 中获取可用更新的计数

How can I grep a count of available updates from yum check-updates

我想检查是否有更新可用,如果有,请在安装更新之前执行一些步骤。我 运行 yum check-updates 查看可用于已安装软件包的更新列表,但我想 grep 这个并获得一个计数,我可以在 [=12] 中用于某些逻辑=] 脚本。所以理想情况下,如果没有更新,我希望 grep check-updates 和 return 0 的输出,或者如果有五个更新可用,那么我希望 grep return 5.

我怎样才能 grep 这个到 return 计数?

你知道grep -c吗?我刚刚创建了一些无意义的文件,结果如下:

Prompt> grep "AA" test.txt
1A01 TCCTTGAAAG
TCAACAAGAA
TCGCAAA
TTTAAAGTCGT
 GGCGGAATCAATAC
GATGGAATATGCGCC

如果我使用 grep -c,结果是这样的:

Prompt> grep -c "AA" test.txt
6

如果这不能完全回答您的问题,请编辑您的问题并添加更多信息,以显示您正在寻找的内容。

此外,请注意在每个 UNIX 命令后添加 | wc -l 会读取该命令的结果数量。

awk 和 grep 的这种组合给出了已安装软件包的可用更新计数:

yum check-updates | awk 'p;/^$/{p=1}' | grep -c "\."

这是基于 How to get just a list of yum updates

中的信息

我喜欢更简单的方法。

“yum -q”减少了 yum 的输出,因此它只显示软件包列表。将它与“wc -l”结合起来计算输出的行数。

所以要计算需要更新的包数量,我会 运行

sudo yum -q 检查更新 | wc -l

用于 quiet-q 很棒,但您可能还想 grep out 任何空行以及 trailing Loaded plugins 消息。这对于准确计数非常有用:

yum check-update -q|egrep -v "Loaded plugins: langpacks, product-id, subscription-manager|^$"|wc -l