0

CVE のリストをループして、rpm -qa --changelog と比較し、RPM 名と CVE grep 出力を出力しようとしていますが、そこに到達できません。

リストは列形式です。

出力を次のようにしたい: RPM : CVE 出力

rpm -q $RPM --changelog|grep $CVE

ここで、$RPM は rpm -qa から取得され、$CVE は cat CVE.list から取得されます

4

2 に答える 2

1

以下は滑らかなワンライナーではありませんが、機能します。――ジョン・ホール

#!/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
于 2014-09-25T17:39:52.747 に答える