zoukankan      html  css  js  c++  java
  • shell脚本实例

    #!/bin/bash
    
    SRC_PATH=/mnt/source/xx/xx
    
    # Merge all spec file for quick search
    mergedSpec="./allSpec-"$(date +%Y%m%d).txt
    
    function merge_all_specs(){
        allSpec=$(find $SRC_PATH -name *.spec)
        for specFile in $allSpec
        do  
            specName=$(basename $specFile)
            specPrefix=${specName%.*} 
            #echo $specName, echo ${specName%.*}
            prefix="${specPrefix}":"${specFile}:"
            #echo $prefix
            prefix=${prefix////\/}
            #echo $prefix
            cat $specFile | sed 's/^/'"$prefix"'&/g' >> $mergedSpec 
        done
    }
    
    if [ ! -f "$mergedSpec" ]; then
        merge_all_specs
    fi
    
    resultFile=$1-confirmed
    :>$resultFile
    
    cat $1 | while read LINE
    do
        #echo $LINE | grep -ri CVE
        #if [ $? -ne 0 ]
        #then
        #    continue
        #fi
    
        sa=`echo $LINE | awk '{print $1}'`
        cves=`echo $LINE | awk '{for (i=2 ;i<=NF;i++) printf $i " "}'`
    
        for cve in $cves
        do
            #echo $cve
            grep -i $cve $mergedSpec >/dev/null 2>&1
            if [ $? -ne 0 ]
            then
                echo -e "$sa $cve:	待确认"
                echo -e "$sa $cve:	待确认" >> $resultFile
            else
                    record=$(grep -ri $cve $mergedSpec)
            specFile=`echo ${record} | awk -F ':' '{print $2}'`
    
            comm_dir=`dirname $specFile`
                    comm_specfile=`basename $specFile`
    
            comm=${comm_specfile%.*}
            #echo ${comm_dir}"->"${comm_specfile}
    
            if [ ! -d "${comm_dir}" ]
                    then
                         continue
                    fi
    pushd ${comm_dir} >/dev/null 2>&1
    
                    if [ -d ".git" ]
                    then
                         commitmsg=`git blame ${comm_specfile} | grep -i $cve | head -1 | awk '{print $1}'`
                         #echo "----ID---"${commitmsg}
                    else
                         echo -e "$sa $cve:	No find .git"
                 popd >/dev/null 2>&1
                         continue
                    fi
    popd >/dev/null 2>&1
    
                    # Remove all space
                version=`echo $version | sed s/[[:space:]]//g`
                release=`echo $release | sed s/[[:space:]]//g`
    
                    # Special Cases
    
    
                echo -e "$sa $cve:	Merged","	"${comm%%:*}-${version##*:}-${release##*:}
                echo -e "$sa $cve:	Merged","	"${comm%%:*}-${version##*:}-${release##*:} >> $resultFile
            fi
        done
    done
  • 相关阅读:
    zlib 用了很多次,这次记下来
    boost 1.53 比1.52 ASIO bug 修正
    64位汇编
    js C++
    这个split 不错 我喜欢的
    布6月26日至28日将在旧金山召开2013年Build大会
    asio同步模式和异步模式
    vc6 编译boost
    windows 编译mongodb 2.4
    ajaxToolKit中 的折叠面板用法Accordion
  • 原文地址:https://www.cnblogs.com/stellar/p/8623789.html
Copyright © 2011-2022 走看看