如何仅获取 yum 更新列表

Mik*_*e Q 3 bash yum

好吧,我一直有这个问题。我只想使用 yum 从 Linux 系统(RHEL 或 Fedora)通过 bash 脚本在文件中列出可用的更新,但我总是必须处理创建的标头信息,如下所示:

    Loaded plugins: XXXX-repo  XXXX-updates
                  : WWWWWW-repo  something-updates  QQQQQ-updates
     Updated packages
     package1.i686         1:234                  RHEL 6.5 updates
     package2.i686         1:234                  RHEL 6.5 updates
     package3.i686         1-234                  RHEL 6.5 updates
     package4.noarch       1.234                  RHEL 6.5 updates
Run Code Online (Sandbox Code Playgroud)

我想要的只是 package1、package2 等的列表,这看起来很简单,但事实并非如此,因为我不能只 grep 上“更新”或“:”。我是不是看错了?为什么我不想捕获脚本中发现的更新?我应该只更新并检查更新了什么吗?想法?

PS> 我无法使用 --noplugins 选项。

编辑:到目前为止我已经想出了这个,

     sudo yum check-update | grep "\." | awk '(NR >=1) {print $1;}' | grep '^[[:alpha:]]'
Run Code Online (Sandbox Code Playgroud)

基本上抓住其中有句点的行,即第一行,并确保它首先包含字母。也许做得有点过头了,但似乎有效。

gle*_*man 6

仅打印“更新的包”后面(但不包括)的行

yum check-update | awk 'p; /Updated packages/ {p=1}'
Run Code Online (Sandbox Code Playgroud)

注意,在我的 Fedora 系统上,一个空行将“标头”与可更新包列表分隔开,所以我会使用awk 'p;/^$/{p=1}'