首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >For循环读取CVE列表并进行比较

For循环读取CVE列表并进行比较
EN

Stack Overflow用户
提问于 2013-08-14 05:23:12
回答 2查看 294关注 0票数 0

我正在尝试遍历一组CVE,与rpm -qa --changelog进行比较,并输出RPM名称和CVE grep输出,但就是达不到目的。

该列表采用列格式。

我希望输出是这样的: RPM : CVE输出

代码语言:javascript
复制
rpm -q $RPM --changelog|grep $CVE

其中$RPM来自rpm -qa,$CVE来自cat CVE.list

EN

回答 2

Stack Overflow用户

发布于 2014-09-26 01:39:53

下面不是一个圆滑的一行,但它是有效的。--约翰·霍尔

代码语言:javascript
复制
#!/bin/ksh
#
# Show which installed RPM's contain specified CVE's.
#
echo "\
CVE-2011-3348
CVE-2012-0031
" | \
while read CVE
do
     case $CVE in
         "") break ;;
     esac
     echo; echo "Processing [$CVE] ... "
     rpm -qa | \
     while read RPM
     do
          rpm -q --changelog $RPM | grep $CVE > /dev/null
          case $? in
              0) echo "RPM: $RPM "
                 rpm -q --changelog $RPM | grep $CVE
              ;;
          esac
     done
done
票数 1
EN

Stack Overflow用户

发布于 2013-08-14 05:33:47

试试像这样的东西

代码语言:javascript
复制
rpmout=$(rpm -q $RPM --changelog)
for vuln in $(cat "$CVE")
do
    cvegrep=$( rpm -q "$RPM" --changelog | grep "$vuln")
    echo -en "$rpmout : $cvegrep\n"
done

编辑:根据特定的输出需求进行编辑。这可能需要进一步编辑,具体取决于CVE文件格式是什么,以及rpm命令的输出是什么。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/18219485

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档