用于获取diff结果的Shell脚本改进

时间:2014-08-22 17:54:44

标签: shell jenkins coverity

我编写了shell脚本,它可以比较两个文件,并为我提供HTML格式的缺陷。但我想改进它,以便我只能修改文件缺陷而不是遗留缺陷。我正在使用此脚本获取Coverity报告。

 while read line; do
n=$((++n))
if echo $line | grep '^[[:space:]]*>' &>/dev/null; then
    if [ $(($n % 2)) -eq 1 ]; then
        # TODO somehow get proper defect number from html
        # echo "Defect num: $(($n/2 + 1))"
        def_num=$((++def_num))
    fi
    echo $line | sed -n -e 's/>[[:space:]]*\(.*\)/\1/p'
    if [ $(($n % 2)) -eq 0 ]; then
        echo "-------------------------------"
    fi


done < <(diff -y -W 200 ./cov-results-base/result.filt ./cov-results-changed/result.filt)

echo "==============================="
echo

echo "Number of defects in old code: $(tac cov-results-base/summary.xml |
                    sed -n '/num/{s|<num>\(.*\)</num>|\1|p; q;}')"
echo "Number of defects in new code: $(tac cov-results-changed/summary.xml |
                    sed -n '/num/{s|<num>\(.*\)</num>|\1|p; q;}')"

1 个答案:

答案 0 :(得分:0)

这使您可以获取文件的最后修改时间以及与当前时间的比较。

now=`date +%s`
modified=`stat -c "%Y" $file`

if [ $(($now-$modified)) -gt 0 ]; then 
     echo "not modified"; 
else 
     echo "modified"; 
fi

我希望这就是你想要的。