好吧,我一直有这个问题。我只想使用 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
我想要的只是 package1、package2 等的列表,这看起来很简单,但事实并非如此,因为我不能只 grep 上“更新”或“:”。我是不是看错了?为什么我不想捕获脚本中发现的更新?我应该只更新并检查更新了什么吗?想法?
PS> 我无法使用 --noplugins 选项。
编辑:到目前为止我已经想出了这个,
sudo yum check-update | grep "\." | awk '(NR >=1) {print $1;}' | grep '^[[:alpha:]]'
基本上抓住其中有句点的行,即第一行,并确保它首先包含字母。也许做得有点过头了,但似乎有效。
仅打印“更新的包”后面(但不包括)的行
yum check-update | awk 'p; /Updated packages/ {p=1}'
注意,在我的 Fedora 系统上,一个空行将“标头”与可更新包列表分隔开,所以我会使用awk 'p;/^$/{p=1}'
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)